一、概念:
什么是查询存储(Query Store)
查询存储是 SQL Server 2016+、Azure SQL 数据库的数据库级内置性能诊断工具,像数据库的 “飞行数据记录器”,自动持久化捕获并保存查询文本、执行计划、运行时统计(CPU、IO、执行次数、持续时间)的完整历史,数据不会因服务器重启、缓存清空而丢失。
查询存储包含三个存储:
计划存储:用于保存执行计划信息。
运行时统计信息存储:用于保存执行统计信息。
等待统计信息存储:用于保存等待统计信息。
查询存储的功能
使用查询存储,可快速执行以下操作:
• 确定你关注的时间段内(过去一小时、昨天、上周等)执行指标已降级的所有查询。 在SQL Server Management Studio 中使用回归查询加快分析速度。
• 在回归查询中,很容易找到那些有多个计划的查询,以及由于计划选择错误而降级的查询。 使用“回归查询”中的“计划摘要”窗格来显示回归查询的所有计划及其在某个时间段的查询性能。
• 强制实施历史记录中的旧计划(如果该计划经证明效果更好)。 使用“回归查询”中的“强制计划”按钮,强制实施针对查询选择的计划。
二、查询存储的使用
默认情况下,SQL Server 2016(13.x)、SQL Server 2017(14.x)、SQL Server 2019(15.x)未启用查询存储。 默认情况下 READ_WRITE ,从 SQL Server 2022(16.x)开始的新数据库处于模式中启用此功能。 若要启用功能以更好地跟踪性能历史记录、排查查询计划相关问题并在 SQL Server 2022 (16.x) 中启用新功能,建议在所有数据库上启用查询存储。