使用Query Store监控性能

SQL Server Query Store特性可以让你看到查询计划选择和性能。简化了性能调优,可以快速的发现因为查询计划的选择导致的性能的差别。Query Store自动历史的查询,计划和运行时的统计信息,保留这些可以用来检查。数据通过时间窗口来分隔数据,你可以看见数据库的使用模式,并且理解查询计划在服务中的变化。可以你使用ALTER DATABASE SET选项来配置Query Store。
 
启动Query Store
ALTER DATABASE AdventureWorks2012 SET QUERY_STORE = ON;
 
Query Store中的信息
特定查询的执行计划涉及到很多,比如统计信息变化,schema变化,索引的创建和删除等等。过程的执行计划只会保存最新的执行计划,计划也会因为内存压力来牺牲计划的cache。因为执行计划的变化导致性能问题也是比较多的。
因为每个查询都保留了多个执行计划,可以通过策略强制查询处理器使用特定的执行计划。Query Store的计划强制和查询hint的USE PLAN相似,不需要应用程序做任何修改。计划强制可以解决查询的计划修改导致的性能退化。
Wait Stats,是另外一个source用来调优SQL Server。对于长时间,wait stats是实例级别的,并不能回归到实际查询。在SQL Server 2017,在Query Store中增加另外一个维度来跟踪wait stats。
 
Query Store特性使用场景:
  • 快速查找和通过强制到之前的查询计划,修复一个计划性能回归
  • 时间窗口内查询的运行次数。
  • 查看过去的x小时,top n查询
  • 审计给定查询的查询计划
  • 分析特定数据库的资源使用
  • 等待resource的top n查询
  • 理解特定查询和计划的wait nature
 
Query Store包含的三个Store:
  • plan store,用来保存执行计划信息
  • runtime stats store,保存执行的统计信息
  • wait stats store,保存wait stats
可以通过max_plans_per_query配置每个查询的保存的plan数量,为了提高性能写入这些store都是一部的,为了最小化空间的使用运行时的统计信息,按某个时间范围内聚合。
以下查询返回query store中的查询和计划:
 
SELECT Txt.query_text_id, Txt.query_sql_text, Pl.plan_id, Qry.* 
FROM sys.query_store_plan AS Pl 
JOIN sys.query_store_query AS Qry 
    ON Pl.query_id = Qry.query_id 
JOIN sys.query_store_query_text AS Txt 
    ON Qry.query_text_id = Txt.query_text_id ;
 
查找等待查询
从SQL Server 2017开始每个查询的等待信息,可以使用  sys.query_store_wait_stats (Transact-SQL) 查询
 
 

SQL Server 2016新特性:Query Store的更多相关文章

  1. SQL Server ->> SQL Server 2016新特性之 --- Query Store

    前言 SQL Server 2016引入新的查询语句性能监控.调试和优化工具/功能 -- Query Store.以前我们发现一条查询语句性能突然下降,我们要去找出问题的所在往往需要通过调用一些DMV ...

  2. SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)

    原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一 ...

  3. SQL Server 2016新特性:列存储索引新特性

    SQL Server 2016新特性:列存储索引新特性 行存储表可以有一个可更新的列存储索引,之前非聚集的列存储索引是只读的. 非聚集的列存储索引支持筛选条件. 在内存优化表中可以有一个列存储索引,可 ...

  4. SQL Server 2016新特性:DROP IF EXISTS

    原文:SQL Server 2016新特性:DROP IF EXISTS  在我们写T-SQL要删除某个对象(表.存储过程等)时,一般会习惯先用IF语句判断该对象是否存在,然后DROP,比如: 旧 ...

  5. sql server 2016新特性 查询存储(Query Store)的性能影响

    前段时间给客户处理性能问题,遇到一个新问题, 客户的架构用的是 alwayson ,并且硬件用的是4路96核心,内存1T ,全固态闪存盘,sql server 2016 . 问题  描述 客户经常出现 ...

  6. SQL Server 2016新特性:Live Query Statistics

    SSMS可以提供可以查看正在执行的计划.live query plan可以查看一个查询的执行过程,从一个查询计划操作到另外一个查询计划操作.live query plan提供了整体的查询运行进度和操作 ...

  7. SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Row-Level Security(行级别安全控制)

    SQL Server 2016 CPT3中包含了一个新特性叫Row Level Security(RLS),允许数据库管理员根据业务需要依据客户端执行脚本的一些特性控制客户端能够访问的数据行,比如,我 ...

  8. SQL Server ->> SQL Server 2016新特性之 -- Dynamic Data Masking

    Dynamic Data Masking是为了防止敏感数据暴露给未经授权的用户,以一种最小开销和维护成本的形式.Dynamic Data Masking用于表的字段,相当于盖住字段数据的一部分.比如一 ...

  9. SQL Server ->> SQL Server 2016新特性之 -- sp_set_session_context存储过程和SESSION_CONTEXT函数

    sp_set_session_context存储过程和SESSION_CONTEXT函数出现在了SQL Server 2016 CTP3.0上.它俩配合起来的作用是sp_set_session_con ...

随机推荐

  1. 说说我安装pyspider遇到的那些坑

    现在python3.7  >>pip install pyspider    配置环境变量 前置的phantomjs 无界面浏览器,设置就不说了 cmd 中运行pyspider all  ...

  2. UVA 814 The Letter Carrier's Rounds

    大致翻译: 对于电子邮件应用程序,您需要描述发生在成对mta之间的基于smtp的通信.发送方 的用户代理向发送消息传输代理(MTA)提供格式化的消息.发送MTA使用SimpleMail 传输协议(SM ...

  3. Codeforces Round #538 (Div. 2)

    目录 Codeforces 1114 A.Got Any Grapes? B.Yet Another Array Partitioning Task C.Trailing Loves (or L'oe ...

  4. axios简单理解

    发起一个GET请求 直接使用axios('/user')方法,axios()方法默认为GET方式 axios(’/user/12345’); 使用axios.get()方法,参数直接写以?key=va ...

  5. Space Elevator [POJ2392] [DP][优化]

    题目大意 n件物品,第i件hi高,有ci件,最高的一件不能超过ai的高度.问最高能堆多高 输入: 第一行,一个n 接下来每一行,为hi,ai,ci 输出,最高堆多高 样例输入: 37 40 35 23 ...

  6. 深入理解JVM(10)——Class文件结构

    什么是“JVM”的无关性 Java具有平台无关性,也就是任何操作系统都能够运行Java代码,之所以能够实现这一点,是因为Java运行在虚拟机上,不同的操作系统都有各自的Java虚拟机,从而实现一次编译 ...

  7. linux 时间同步的2种方法(转)

    linux 时间同步的2种方法 张映 发表于 2012-10-23 分类目录: 服务器相关 标签:linux, ntp, 同步, 时间服务器 由于硬件的原因,机器或多或少的根标准时间对不上,一个月的误 ...

  8. js顺序播放列表中的音乐

    今天一个朋友问我js顺序播放音乐列表中的音乐的问题,我仔细一想,我也没有做过啊,无从下手啊,怎么办?然后我就上网查了一下audio标签,又百度了js如何顺序播放音乐,结果就找到了解决的办法. audi ...

  9. Vmware下mint os的安装

    在vmware 11中,mint倒是很好安装.直接读取iso文件,会自动进入一个类似WindowsPE的安装系统,直接双击开始安装就好,比较傻瓜化. 但是安装好了,字体太小,看着很不舒服,于是就倒腾V ...

  10. Map:目录

    ylbtech-Map:目录 1.返回顶部 1.百度地图 http://lbsyun.baidu.com/   2.高德地图 http://lbs.amap.com/   3. 2.返回顶部   3. ...