对 SQL 系统数据库(master、model、msdb、tempdb)的查询存储只能在 msdb 上使用。我查看并没有在 msdb 上找到任何有关查询存储的文档。
虽然您无法在 GUI 中看到它,但可以在您的 SQL 2016 实例上对其进行验证
验证查询存储已关闭
USE msdb
SELECT * FROM sys.database_query_store_options;
Run Code Online (Sandbox Code Playgroud)
打开查询存储
USE [master]
GO
ALTER DATABASE msdb SET QUERY_STORE = ON
GO
ALTER DATABASE msdb SET QUERY_STORE (OPERATION_MODE = READ_WRITE
, INTERVAL_LENGTH_MINUTES = 30
, MAX_STORAGE_SIZE_MB = 1000
, QUERY_CAPTURE_MODE = AUTO)
GO
Run Code Online (Sandbox Code Playgroud)
验证查询存储已开启
USE msdb
SELECT * FROM sys.database_query_store_options;
Run Code Online (Sandbox Code Playgroud)
在所有系统数据库中,为什么 msdb 是唯一一个可以选择使用查询存储的数据库,它增加了什么价值?
-- Stop Query Store
USE [master]
GO
ALTER DATABASE msdb SET QUERY_STORE = OFF
GO
Run Code Online (Sandbox Code Playgroud)