参数过时的查询阈值(天)在 QueryStore、SQL Server 2019 上不起作用



帮我解决一个问题。

我们有SQL Server (Microsoft SQL Server 2019 (RTM-CU18) (KB5017593) - 15.0.4261.1 (X64) Microsoft Corporation Developer Edition(64位)on Windows Server 2019 Standard 10.0 (Build 17763:)),其中QueryStore on数据库位于。

QueryStore参数:参数QueryStore

由于某些原因,参数过期查询阈值(天)不起作用。原来是1天,现在增加到3天。两个值的QueryStore都不干净。目前,使用这些参数,仍然有一些甚至超过30天的请求。

服务重启后,手动清理QueryStore和QueryStore关闭和打开- QueryStore仍然不干净。

还有其他SQL server,具有2019 Developer Edition,其数据库参数陈旧查询阈值(天)等于30天,并且在这些数据库上清理成功。

可能有一些限制,其中这个参数不能少于30天?还是别的什么?我试图解决这个问题很长一段时间,我不明白为什么在这个特定的数据库上,QueryStore清理不工作,即使参数设置为3天,QueryStore保留超过3天的请求。

我试一试:

  • 将参数从1天更改为3天
  • 服务和服务器重启
  • 手动清洗
  • 打开和关闭
  • 更新SQL Server到CU18(它是CU9)
  • 关闭基于大小的清理模式

"Stale Query Threshold (Days):基于时间的清理策略,控制持久化运行时统计信息和非活动查询的保留周期,以天表示。默认情况下,查询存储配置为将数据保存30天,对于您的场景来说,这可能是不必要的。">

查询存储中的一些查询可能在这三天内仍在执行,因此这些查询的统计信息不会从查询存储中删除。

https://learn.microsoft.com/en-us/sql/relational-databases/performance/manage-the-query-store?view=sql-server-ver16&标签= ssm

你没有提到你尝试过更新统计数据。

我们强制db统计数据在低使用率期间每晚更新。
如果这不起作用,请在"尝试"列表中注明。

坏的/旧的数据库统计数据看起来就像一个过时的查询。

如果表的第一部分看起来与表的大部分其他部分不同,那么更新统计信息将无济于事-因为它在构建统计信息时不会查看整个表。<——这是一个边缘情况,只有我建议在您的查询中使用查询提示(在2019年之后使用查询提示几乎总是一个坏主意,但它可能对您有所帮助)

最新更新