这不是一个非常技术性的问题,因为我只是在寻找关于为什么会发生这种事情的理论。
在我们的应用程序中,我们有几个不同的存储过程,它们读取大部分相同的表。我们一直在监视 SQL Server,并试图取消列表中最昂贵的查询(最高 I/O、CPU 时间等)。通过更改 SQL 和/或更改应用程序,我们已经看到了很多收益。
无论如何,我们修改了存储过程#1 并发布了它。正如预期的那样,它的表现要好得多。然而,存储过程#2(它读取相似的数据)突然发现它的性能指标下降了(它消耗了更多的 I/O)。
发布后我们仍然处于更好的位置,但我正试图弄清楚为什么会发生这种情况。到目前为止,我一直无法复制该问题(无论我如何使用存储过程,它对我来说仍然表现良好)。
此外,存储过程并非每次在生产中都表现不佳。在大多数情况下,它运行得很好。
有任何想法吗?
我们使用的是 SQL Server 2008。我们没有更改任何索引。