急!!!!存储过程高手请进,如何优化下面这个存储过程?

vbvc vbvc 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个存储过程主要用来记录个人blog的访问情况的。

这个存储过程是否还可以优化?目前执行起来非常耗cpu,执行时间也很长,100万条记录左右,cpu就开始100%了。

请高手指点了!!!


CREATE Proc blog_InsertVisiting
(
@Visitor nvarchar(50),
@IP nvarchar(20),
@BlogID int

)
as


if exists(select top 1 vid from blog_Visiting with(nolock)
where blogID=@blogID and Visitor=@Visitor and ip=@ip
and convert(varchar(10),dateadded,121)=convert(varchar(10),getdate(),121))
begin

--如果不是匿名访客,更新访问时间
if Lower(@Visitor) !='guest'
begin
update a set a.DateAdded=getdate() from blog_Visiting a with(rowlock)
where blogID=@blogID and Visitor=@Visitor and ip=@ip
and convert(varchar(10),dateadded,121)=convert(varchar(10),getdate(),121)
end

end
else
begin

Insert blog_Visiting(IP,Visitor, BlogID, DateAdded)
Values(@IP,@Visitor, @BlogID, getdate())

--更新访问量
update blog_Stats with(rowlock) set VisitCount=isnull(VisitCount,0)+1 where blogID=@blogID

end
...全文

相关推荐

ORACLE存储过程性能优化技巧

ORACLE存储过程性能优化技巧,帮助你更好的学习oracle的方方面面的技术!

zhanzh1985

oracle 存储过程优化

作为一名数据库开发工程师必须掌握的技能,因为工作中会遇到很多需要优化的过程

yun12315

存储过程

1、什么是存储过程? 把一堆SQL语句放在一起,还可以根据条件执行不通SQL语句。 2、为什么要使用存储过程? 比单纯SQL语句执行要快。 3、存储过程优点: 1.允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。 2.如果某次操作需要执行多次SQL ,使用存储过程比单纯SQL语句执行要快。 3.可重复使用,能减少网络流量,还具有安全性。 4、存储过程缺点: 1.调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。 2.移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。 3.重新编译问题。 存储过程规范写法 -

weixin_38645865

MySQL存储过程的优化实例

前言 在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用存储过程来封装数据库操作。如果项目的存储过程较多,书写又没有一定的规范,将会影响以后的系统维护困难和大存储过程逻辑的难以理解,另外如果数据库的数据量大或者项目对存储过程的性能要求很,就会遇到优化的问题,否则速度有可能很慢,经过亲身经验,一个经过优化过的存储过程要比一个性能差的存储过程的效率甚至高几百倍。下面介绍某一个MySQL存储过程优化的整个过程。 在本文中,需要被优化的存储过程如下: drop procedure if exists pr_dealtestnum; delimiter // create

weixin_38619467

Sql Server 存储过程调用存储过程接收输出参数返回值

主要介绍了Sql Server 存储过程调用存储过程接收输出参数返回值,需要的朋友可以参考下

weixin_38674415
评论 13
收藏 已收藏
分享
返回顶部
vbvc
应用实例 27,579 成员 68,540 内容