我们有一个 SQL Server 2016 SP1 CU7 Enterprise 服务器,我们在其中启用了数据库上的查询存储。这是一个高度使用的数据库。
已Max Size
设置为 200MB,Stale Query Threshold
为 1 天。
我曾经sys.database_query_store_options
检查过查询存储的属性,只要the current_storage_size_mb
保持在 200MB 以下,一切都会完美无缺。
我已设置Size Based Cleanup Mode
为自动,但没有进行清理,通常当查询存储已满 90% 时应触发清理。接下来发生的是查询存储进入只读模式,因为没有剩余可用空间。
我试过更改Query Store Capture Mode
为自动但没有任何变化。
如果我随后更改Stale Query Threshold
为 30 天,则actual_state_desc
对 READ_WRITE 的更改和查询存储将再次开始捕获。这current_storage_size_mb
只是变得比 高max_storage_size_mb
,过了一会儿actual_state_desc
又回到 READ_ONLY。
谁能解释这种行为?
前几天我把服务器更新到SQL Server 2016 SP2,问题就消失了。现在,当查询存储达到 90% 时,它会被清理直到达到 80%。
我不知道 SP2 是解决方案还是由于更新而重新启动了 SQL 服务。