为什么过程统计信息经常从 SQL Server 中清除?

问题描述 投票:0回答:1

最近几天,在我们的组织中,我们面临着一个奇怪的问题。

我们的 SQL Server 有足够的内存(256 GB)和 CPU 核心。没有内存压力(dm_os_sys_memory 的结果是“可用物理内存很高”)。

唯一的问题是,过程统计信息 sys.dm_exec_procedure_stats 经常被清除。统计数据甚至不会保留一个小时。

我们需要统计数据的原因是,它是在 DMV dm_exec_procedure_stats 的帮助下每天收集的。而且,我们的 SQL 开发人员过去常常对存储过程进行优化,一旦完成,为了了解调整活动的有效性,就会在收集的历史统计数据和当前统计数据之间进行比较。

由于程序统计信息不保留在缓存中,因此我们无法设置任何基准。

请提出一些解决方案。

版本:Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) 企业版:(64 位)Windows Server 2012 R2 Standard 6.3(内部版本 9600:)

sql sql-server-2017
1个回答
0
投票

有多种方法可以清除缓存,从整体实例配置更改到数据库更改,再到在过程中使用重新编译。

此链接很好地说明了可能导致问题的原因,但我认为您必须进行一些调查。

https://www.sqlskills.com/blogs/glenn/eight- different-ways-to-clear-the-sql-server-plan-cache/

© www.soinside.com 2019 - 2024. All rights reserved.