同一存储过程的不同执行计划

Rob*_*ner 4 sql sql-server stored-procedures sql-server-2005 sql-execution-plan

我们的生产系统有一个约5秒的查询,但在我们的镜像系统上(尽可能与生产相同)和开发系统需要不到1秒.

我们检查了查询计划,我们可以看到它们有所不同.同样从这些计划中我们可以看出为什么一个人比另一个人服用更长时间.数据,schame和服务器类似,存储过程相同.

我们知道如何通过重新排列的加入,增加提示来解决它,但是此刻它会更容易,如果我们没有做对存储过程(文书)的任何变化.我们还尝试了一个sp_recompile.

什么可能导致两个查询计划之间的差异?

系统:Win2k3 Enterprise上的SQL 2005 SP2 Enterprise

更新:感谢您的回复,结果证明这是统计数据.见下面的摘要.

Dav*_*kle 12

您的统计信息很可能已过期.如果数据相同,请重新计算两台服务器上的统计信息并重新编译.然后,您应该看到相同的查询计划.

另外,请仔细检查索引是否相同.