今天我遇到了一个有趣的问题,即我们的8人软件团队中没有人见过。
EXEC FirmSearch 1,1
那个简单的sp需要45秒。每次执行。在存储过程中运行完全相同的语句只需不到1秒。我创建具有相同功能的FirmSearchV2。然后:
EXEC FirmSearchV2 1,1
FirmSearchV2花了不到1秒的时间。我试图执行FirmSearch sp的修改查询(没有任何更改),问题就消失了。现在,FirmSearch在不到1秒的时间内执行。 我正在使用MsSql 2008。
出现此问题的可能原因是什么?
答案 0 :(得分:2)
我不知道sql-server所以这可能是完全错误的,但是在另一个DBMS存储过程中使用创建sp时存在的统计信息进行编译。也就是说,如果数据变化很大,则为sp编译的访问计划可能是次优的。这可以解释为什么重新创建sp可以提高性能。检查是否有任何可以重新编译sp的实用程序,而无需重新编译它。