首页 新闻 赞助 找找看

多条select 放在一个存储过程中反而慢了,什么原因?

0
[已关闭问题]

我有一个存储过程里面同时放了多条 select 语句,我用的asp.net 我是想把记录一次性读取出来,从而节省话费在建立connection上面的时间。但是我在测试我的存储过程的时候发现时间有些长。但是我测试每条 select 执行的时间非常短,加起来时间很多,但是如果全部何在一起放在一个存储过程中,一起读取,就会很慢,为什么呢?

 

前面我是计算整个循环10次的时间,下面我改了一下代码,每次都计算一下执行存储过成所需要的时间,出现了这样的问题。代码如下

declare @btime as datetime
declare @etime as datetime
declare @i as int
select @i=0

while @i <=9
begin
select @i=@i+1
select @btime=getdate()
EXEC [dbo].[sp_BBSTopicPageList]
@forumId = 0,
@bbsId = 11,
@state = 0,
@iPageIndex = 1,
@iPageSize = 20,
@iCount = 0
select @etime=getdate()
select datediff(ms,@btime,@etime)
end

执行第一次的结果--去掉了生成的记录,只计算每次的时间间隔
1:0
2:0
3:0
4:593
5:613
6:0
7:423
8:390
9:470
10:626

执行第二次的结果---去掉了生成的记录,只计算每次的时间间隔
1:0
2:0
3:0
4:683
5:573
6:0
7:483
8:453
9:476
10:513

执行第三次的结果---去掉了生成的记录,只计算每次的时间间隔
1:0
2:0
3:0
4:750
5:503
6:0
7:453
8:410
9:466
10:500


每次,前三次的时间都是0,第6次是0  这是怎么回事呢?

问题补充: 因为在需求上,访问某个页面,这个页面上就要显示4中数据集,必须要读取出来,我就放在一起读取,我想问,放在一起读取会慢吗?按照理论来说,放在一次读取和多次读取应该差不多,而且一次读取比多次读取要节省3次建立connection的时间,请问高手都是怎么做的?
无畏的小水滴的主页 无畏的小水滴 | 初学一级 | 园豆:200
提问于:2008-11-30 18:40
< >
分享
其他回答(1)
0

这个。。。具体可能就要看你的存储过程是啥了

风海迷沙 | 园豆:4453 (老鸟四级) | 2008-12-01 12:15
0

如果放到DataSet里面,Connection不是可以断掉了吗?这样时间也会长吗?

但是我测试每条 select 执行的时间非常短,加起来时间很多,但是如果全部何在一起放在一个存储过程中,一起读取,就会很慢.

把select语句的数目能不能减少一下呢?

有所为,有所不为 | 园豆:1200 (小虾三级) | 2008-12-02 10:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册