我有一个快速的测试服务器和一个生产缓慢的服务器。
现在无法获得新的生产服务器。我遇到的一个问题是,在一些大型导入之后,生产服务器上的一个查询甚至更慢。我的印象是,当每周维护计划运行时,每个星期一的事情都会恢复正常。
然后我们重新计算统计数据并重建索引。 (数据库设置为"自动重新计算统计数据"。)
我现在不想在生产服务器上执行维护计划,因为我不想对它施加更多负担。
如果不同步统计信息导致不同的查询计划,是否可以强制生产服务器使用来自testserver的查询计划?或者我可以将测试的统计数据复制到生产中吗?我知道我可以使用提示强制使用某些索引,但查询非常复杂,因此不可行。
答案 0 :(得分:2)
重新使用其他计算机上的计划很少是一种好方法。确保首先耗尽所有其他选项。即使有可能,复制统计数据也是一个糟糕的主意。想一想它将如何影响未来的工作,并且无法调整数据库的变化。 也许您的查询的问题是它以某种方式专门针对其他服务器进行了调整。无论如何,这是一篇关于Migrating Query Plans的文章。