最近几天,在我们的组织中,我们面临着一个奇怪的问题。
我们的SQL Server具有足够的内存(256 GB)和CPU内核。没有内存压力(dm_os_sys_memory的结果为“可用物理内存很高”)。
唯一的问题是,过程统计信息sys.dm_exec_procedure_stats经常被清除。统计数据甚至不会停留一个小时。
我们需要统计信息的原因是,它每天都在DMV dm_exec_procedure_stats的帮助下进行收集。而且,我们的SQL Developer曾经对存储过程进行优化,一旦完成优化,就知道调优活动的有效性,我们将在收集的历史统计数据和当前统计数据之间进行比较。
由于过程统计信息没有保留在缓存中,因此我们无法设置任何基准。
请提出一些解决方案。
版本:Microsoft SQL Server 2017(RTM)-14.0.1000.169(X64)企业版:(Windows Server 2012 R2 Standard 6.3(内部版本9600 :)上的(64位)
答案 0 :(得分:0)
从总体实例配置更改到Db更改直到在过程中使用重新编译,缓存有多种清除方法。
此链接为可能导致问题的原因提供了很好的线索,但我认为您将需要进行一些调查。
https://www.sqlskills.com/blogs/glenn/eight-different-ways-to-clear-the-sql-server-plan-cache/