如何判断Azure SQL数据库是否已启用QUERY_STORE?
使用此命令启用它:
ALTER DATABASE <database_name> SET QUERY_STORE = ON;
我认为检查数据库应该很简单,但我还没有找到诀窍。
仅供参考,我在已启用它的数据库上尝试了此命令,但该命令只返回null:
SELECT DATABASEPROPERTYEX ('<database_name>', 'QUERY_STORE')
答案 0 :(得分:5)
此DMV sys.database_query_store_options 可让您确定是否已启用QUERY_STORE
:
SELECT desired_state_desc ,
actual_state_desc ,
readonly_reason,
current_storage_size_mb ,
max_storage_size_mb ,
max_plans_per_query
FROM sys.database_query_store_options ;
Actual_state_Desc说明:
关闭(0)
- 未启用
READ_ONLY(1)
即使用户指定了读写,查询存储也可以以只读模式运行。例如,如果数据库处于只读模式或查询存储大小超过配额
,则可能发生这种情况
READ_WRITE(2)
查询存储已启用,它正在捕获所有查询
错误(3)
极少数情况下,由于内部错误,Query Store可能最终处于ERROR状态。如果内存损坏,可以使用ALTER DATABASE SET QUERY_STORE语句显式请求READ_WRITE模式来恢复Query Store。如果磁盘损坏,必须在明确请求READ_WRITE模式之前清除数据。
答案 1 :(得分:0)
David的答案显示是否为当前数据库启用了查询存储-因此您需要遍历它们。
此查询显示是否为所有数据库启用了查询存储(但未显示任何详细信息)。
SELECT
d.name,
d.is_query_store_on
FROM sys.databases AS d