许多用户同时执行存储过程需要更长的时间来呈现结果

时间:2017-05-10 13:19:10

标签: sql-server stored-procedures

我在SQL Server 2005中有一个存储过程。当它由一个用户执行时,运行需要5秒。但是当它由多个用户执行时,需要更长的时间,甚至超过15秒。

如何改善它的执行不依赖于用户数量?

感谢。

1 个答案:

答案 0 :(得分:2)

对于SQL查询,

5秒相对较慢,表明它执行了大量工作(例如,大量磁盘IO)。由于SQL Server上的负载增加,涉及大量磁盘IO的查询在由多个并发用户执行时可能会运行得更慢。您应该获得execution plan并查看是否可以优化5s查询,例如附加索引。

锁定也可能是罪魁祸首,例如:如果你查询整个表的独占锁并运行5s,则同时运行的第二个查询需要等待5s才能使原始查询完成执行,然后锁定表本身并再执行5s执行,结果为10s执行时间处理时间。 3个并发查询将需要15秒等...请参阅How to identify blocking in SQL Server以获取一系列方法来检查是否属于这种情况。