GO SQL Server查询存储属性信息
让我们回顾在“Query Store”属性页可用的其他信息。 当前的磁盘使用(Current Disk Usage)
这部分在左边显示了数据库大小和查询存储使用,在右边显示了查询存储大小和使用:
注意到在“Query Store”页的“Purge Query Data”按钮。你可以使用这个按钮移除查询存储的内容或者使用一下的这些语句之一:
ALTER DATABASE [DEMO_1] SET QUERY_STORE CLEAR ALL
GO
EXEC sys.sp_query_store_flush_db 注意,sp_query_store_flush_db存储过程仍有些BUG,微软可能正在修复。 SQL Server查询存储系统对象和新的扩展事件
在SQL Server 2016 CTP 2.2中,有6个新的系统存储过程和7个目录视图与查询存储相关,可以运行如下查询找到:
SELECT name, type_desc FROM sys.all_objects
WHERE name LIKE '%query_store%' or name= 'query_context_settings'
你可以从这里找到存储过程的描述:https://msdn.microsoft.com/en-us/library/dn818153.aspx,这里找到目录视图的描述:https://msdn.microsoft.com/en-us/library/dn818149.aspx
也有19个新的扩展事件: l query_store_background_task_persist_started – 如果查询存储数据持久化的后端任务开始执行时触发。 l query_store_background_task_persist_finished – 如果查询存储数据持久化的后端任务成功完成时触发。 l query_store_load_started – 当查询存储负载启动时触发。 l query_store_db_data_structs_not_released – 当属性设置为OFF时查询存储数据结构未发布时触发。 l query_store_db_diagnostics – 随着数据库级别的查询存储诊断而周期性触发。 l query_store_db_settings_changed – 当查询存储设置被修改时触发。 l query_store_db_whitelisting_changed – 当查询存储数据库白名单状态被修改时触发。 l query_store_global_mem_obj_size_kb – 随着查询存储全局内存对象大小周期性触发。 l query_store_size_retention_cleanup_started – 当大小保留策略清理任务启动时触发。 l query_store_size_retention_cleanup_finished – 当大小保留策略清理任务完成时触发。 l query_store_size_retention_cleanup_skipped – 当大小保留策略清理任务因为它的最小重复时间还没到而被跳过时触发。 l query_store_size_retention_query_deleted – 当基于大小的保留策略从查询存储删除了一个查询时触发。 l query_store_size_retention_plan_cost – 当对执行计划的驱逐消耗被计算时触发。 l query_store_size_retention_query_cost – 当对执行计划的查询驱逐消耗被计算时触发。 l query_store_generate_showplan_failure – 当查询存储因为showplan生成失败而存储查询计划失败时触发。 l query_store_capture_policy_evaluate – 当对查询的捕获策略被评估时触发。 l query_store_capture_policy_start_capture – 当一个UNDECIDED查询转换为CAPTURED时触发。 l query_store_capture_policy_abort_capture – 当一个UNDECIDED查询转换为CAPTURED失败时触发。 l query_store_schema_consistency_check_failure – 当查询存储架构一致性检查失败时触发。 SQL Server Management Studio(SSMS)查询存储属性 SSMS“Query Store”容器
在启用查询存储后数据库将会在SSMS中有新的“Query Store”容器:
在右侧图表中泡的大小(4)依赖于总的执行次数。
当你在面板的底部点击不同的面板((3)或(4)),将会对特定的plan_id显示执行计划。
注意到一些标题是动态的。面板的名称(6)将会是“Top Resource Consumers [db_name]”。在我们的示例中头部是:“Top 25 Top Resource Consumers During the last hour for database qstore_test”。标题的这些部分是动态的:
l (7) -- “Top 25” – 配置值(下面我们将回顾配置选项)
l (8) -- “last hour” – 配置值
l (9) -- “qstore_test” – 被监控数据库名
让我们回顾“Top Resource Consumers”面板的下拉菜单:
(1) 可用指标:
l CPU Time
l Duration(默认)
l Execution Count
l Logical Reads
l Logical Writes
l Memory Consumption
l Physical Reads
(2) 左侧图表 – 纵坐标:
l “exec count”—执行次数总计
l “num plans”—执行计划数量
l 第三个默认选项是动态的,它基于选择的指标(1)和统计(3)。显示格式是“[statistic][metric]”。
例如:“avg logical reads”。
注意,当“Execution count”指标被选择,然后只有两个选项可用:“exec count”和“num plans”。
(3) 统计:
l Avg(默认)
l Max
l Min
l Std Dev
l Total
(4) 左侧图表 – 横坐标:
l “query> l “exec count”
l 第三个选项是动态的,它基于选择的指标(1)和统计(3)。显示格式是“[statistic][metric]”。例如:“total logical reads”。注意,当“Execution count”指标被选择,然后只有两个选项可用:“exec count”和“num plans”。
(5) 右侧图表(“Plan Summary”)的纵坐标基于左侧图表中选择的“Statistics”而改变:
l Avg(默认值)
l Max
l Min
l Std Dev
注意,如果在左侧图表“Total”统计被选择,那右侧图表的坐标被设置为“Avg”。这会在最终版本中修改。
(6) 如果你有更小的屏幕分辨率,一些图标会被隐藏。
让我们在右侧图表点击“Grid”和标题旁边的“Vertical View”并回顾可用按钮:
“Force plan”按钮在左侧图表的执行计划部分的下面是可用的。我们将下一步回顾它。
注意:本文基于SQL Server 2016 CTP 2.2而写。一些截屏和行为可能会在最终版本中改变。 接下来
l 很快回来阅读查询存储使用的示例的下一篇文章。
l 下载最新的SQL Server 2016评估板。
l 阅读SQL Server 2016联机帮助文档。
l 阅读如何使用查询存储监控性能。