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