中国开发网: 论坛: 数据库: 贴子 652
haitao
MS SQLServer 2000的存储过程的怪事!
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

不是第一次的问题
因为每次运行都是需要执行这个存储过程成千上万次的...
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录