急!!!!存储过程高手请进,如何优化下面这个存储过程?
vbvc 2007-03-26 09:44:41 这个存储过程主要用来记录个人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