重新编制查询计划

时间:2019-07-10 06:58:37

标签: sql-server tsql sql-server-2012

我们最近在生产中发布了一个新的索引视图,以帮助特定查询的性能,尽管性能得到了显着改善,但我们注意到服务调用有时会花费一秒钟。

我做了一些调查,发现服务调用花费一秒钟的时间与查询计划的编译相吻合。一旦我知道自己对其进行了监视,并可以看到由于更新的统计信息而正在对其进行重新编译。

该表中的数据不断变化,因此我希望看到启用自动创建统计信息后统计信息会更新,但是我只是想知道人们在这种情况下会做什么。是诸如KEEPFIXED PLAN之类的查询提示(对于我而言是不可能的),或者计划指南会有所帮助吗?

这不是一个大问题,因为我们会看到每分钟有大量呼叫,其中一些受到重新编译的影响。更多是出于好奇。

1 个答案:

答案 0 :(得分:0)

我将启用异步统计信息更新,并查看行为是否仍然存在

https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-set-options?view=sql-server-2017#auto_update_statistics_async

启用此功能后,优化器将不等待统计信息更新后再编译计划。缺点是您可能会执行查询,并使用过期的统计信息生成计划