使用Azure Log Analytics查询SQL托管实例执行SQL无数据如何配置?
问题排查和配置方案
1 数据库层面开启Query Store读写权限
你需要先为每个需要采集查询记录的数据库开启Query Store并设置为读写模式,这是必要前提:
- 执行以下SQL检查当前Query Store状态:
SELECT desired_state_desc, actual_state_desc FROM sys.database_query_store_options;
- 如果返回的
actual_state_desc不是READ_WRITE,执行以下命令开启:
ALTER DATABASE [你的目标数据库名称] SET QUERY_STORE = ON ( OPERATION_MODE = READ_WRITE, MAX_STORAGE_SIZE_MB = 1024 -- 可根据业务需要调整存储上限,避免空间满后自动切为只读模式 );
- 验证数据库本地已有Query Store数据:
SELECT TOP 10 * FROM sys.query_store_runtime_stats;
如果本地查询无结果,说明Query Store还未生成统计数据,可先执行业务查询产生负载后再验证。
2 修正诊断设置配置
QueryStoreRuntimeStatistics属于数据库级别的诊断采集类别,而非SQL托管实例级别的类别,你之前仅能查到UsageStats、Errors数据,大概率是仅配置了实例级别的诊断设置,没有单独为目标数据库配置:
- 进入Azure portal中对应SQL托管实例的数据库列表,打开你需要采集的目标数据库的独立配置页
- 找到「诊断设置」选项,新增诊断设置
- 勾选
Query Store Runtime Statistics(如果需要等待事件等信息,可同时勾选Query Store Wait Statistics) - 目标选择你已创建的Log Analytics工作区,保存配置
3 等待数据同步
配置完成后需要等待10~15分钟的同步延迟,再运行Kusto查询验证即可:
AzureDiagnostics | where Category == "QueryStoreRuntimeStatistics" | take 10
内容的提问来源于stack exchange,提问作者inspiredd
相关产品推荐
相关产品推荐

