急!专家们请进:为什么C# SqlCommand执行存储过程这么慢(局域网内)?[Sql Server2000(SP3)]
有一个需要通过C#程序执行的存储过程(现在用的是异步的线程在做),在Sql查询分析器中执行最多也不过几分钟,但是使用SqlCommand执行一个小时都没有完成,为什么?有什么办法解决?
<我们的存储过程是太长了,一千行啊!
当然我不否认代码上有问题。这个存储过程调用了N多个上万行记录的表,用了大量的游标(游标套游标),又调用了两个其他的存储过程!
我也很晕啊,可是,问题是:
在Sql查询分析器中执行最多也不过几分钟,但是使用SqlCommand执行一个小时都没有完成,很郁闷啊!
(这个复杂的存储过程不由我负责啊!)
希望各位高人踊跃相助,小弟不胜感激啊!!>
------解决方案--------------------网络的问题吧!
------解决方案--------------------一般 不会这样,估计是分析其和c#代码之间有差别
------解决方案--------------------这么大的程序.这么大的资源.你没有考虑用缓存.
PS.只是建议.我也没用过缓存
------解决方案--------------------如果你开启了事务处理,这个速度会比不使用事务慢的好多,如果没有事务的处理必要,建议不使用事务来执行Sql,这样速度就相当快了,还有就是尽量减少和数据库服务器的交互次数,因为每次交互都会很消耗资源.
------解决方案--------------------一半跟网络没什么关系,可能你的存储过程有问题,也许是死锁了,具体可以看看SQL日志 看看是不是死锁了
------解决方案--------------------up