我有一个存储过程里面同时放了多条 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 这是怎么回事呢?
这个。。。具体可能就要看你的存储过程是啥了
如果放到DataSet里面,Connection不是可以断掉了吗?这样时间也会长吗?
但是我测试每条 select 执行的时间非常短,加起来时间很多,但是如果全部何在一起放在一个存储过程中,一起读取,就会很慢.
把select语句的数目能不能减少一下呢?