haitao:
MS SQLServer 2000的存储过程的怪事!
[阅读: 782] 2003-05-21 08:46:22
MS SQLServer 2000的存储过程的怪事!
我有一个MS SQLServer 2000的存储过程,仅涉及两个表,
经过系统优化索引,执行速度提高了几倍!
但是有一个很奇怪的事情,这个存储过程中有一个if分支,
其中一个分支几乎不会被执行,我为了监视它是否真的从
未被执行,在分支的begin end里加了一句:
update tbcheck set fcount=fcount+1 where fid=1
(tbcheck是一个转门为监视、统计这个分支被执行几次而建的
新表,只有2个字段fid int主键,fcount int,1条记录:
fid=1,fcount=0)
但是这样一来,存储过程的执行速度明显慢了几倍!
虽然这个分支仍然不曾被执行--那个fcount一直为0。
而把这一句注释掉,存储过程的执行速度立即恢复高速度。
03-05-11 08:15
jgh96479
一般会员
注册日期: 2002 Oct
来自: wuhan
发帖数量: 72
本来存储过程第一次执行就是要比较慢呀,你的先建立的哪个,直接执行当然就块点了!
__________________
我飞舞在数码世界里
03-05-11 09:14
haitao
初级会员
注册日期: 2002 Dec
来自:
发帖数量: 27
不是第一次的问题
因为每次运行都是需要执行这个存储过程成千上万次的...