SQL Server2016 新功能实时查询统计信息

很多时候有这样的场景,开发抱怨DBA没有调优好数据库,DBA抱怨开发写的程序代码差,因此,DBA和开发都成为了死对头,无法真正排查问题。

DBA只能使用Windows性能监视器,SQL Server内置的活动监视器、SQL Trace、SQL Profiler、Performance Dashboard等工具,或者使用执行计划来查看查询成本。

为了让DBA有更多有效工具排查问题,SQL Server2016推出了很多新功能,其中一项功能是 Live Query Statistics(LQS 实时查询统计信息),这个功能显示了以往不容易看到的执行时期的内容,例如查询期间的统计信息,这个功能可以帮助DBA找出长时间查询的真正问题根源(root cause)


使用实时统计查询

使用实时查询统计非常简单,只需要在SSMS的工具列,分别按一下【包括实际的执行计划】【包括实时查询统计信息】图标,并执行您的查询就可以了。

现在可以在【实时查询统计信息】tab页看到查询所用到的运算符,正在统计查询耗费时间,另外在tab页面的左上角可以看到整个查询的完成度

使用【实时查询统计信息】会对性能有一定影响,当查询比较复杂的时候,所需等待时间也会增加,并且整个过程也会耗用不少CPU资源,因此使用的时机必须要审慎,否则问题未查出来,反而造成数据库更大的压力。

提示
如果只使用了【包括实时查询统计信息】,而未打开【包括实际执行计划】,那么在【包括实时查询统计信息】的tab页所看到的经过时间和完成率都会是0

不会显示消耗时间


在执行计划中向下钻取(drill down)

在实时查询统计信息执行过程中,可以点击任何一个执行计划中的运算符,查看运算符的统计信息,例如:消耗时间(Elapsed time)、运算符的处理进度(operator progress)、目前CPU使用率,根据这些信息帮助DBA找出瓶颈所在


另外,当查询依然在执行时可以切换到活动监视器,在新增加的【活动的耗费大量资源的查询】tab页里能看到当前正在活动的耗时查询,直到该查询执行完毕

实时查询统计信息原理

实时查询统计信息背后的原理其实是通过DMV动态管理视图获取信息,然后呈现在tab页面上,从而让DBA可以不需要自行查询这些DMV,直接以图形化界面来快速找到长时间执行的查询是在哪个环节耗费最多时间和成本。

下面是实时查询统计信息所使用的DMV,当然自己也可以通过下面的DMV来查询获得需要的统计信息

SELECT * FROM  sys.dm_exec_requests
SELECT * FROM sys.dm_exec_sql_text
SELECT * FROM sys.dm_exec_query_memory_grants
SELECT * FROM sys.dm_exec_query_plan
SELECT * FROM sys.dm_exec_query_profiles

限制

目前实时查询统计信息尚不支持下列功能

列存储索引(columnstore indexes)
内存优化表(memory optimized tables)
本地编译存储过程(Natively compiled stored procedures)

功能截图

更多SQL Server2016好用功能敬请期待o(∩_∩)o 

SQL Server2016 新功能实时查询统计信息的更多相关文章

  1. sql server 索引阐述系列八 统计信息

    一.概述 sql server在快速查询值时只有索引还不够,还需要知道操作要处理的数据量有多少,从而估算出复杂度,选择一个代价小的执行计划,这样sql server就知道了数据的分布情况.索引的统计值 ...

  2. SQL alwayson 辅助接点查询统计信息“丢失”导致查询失败

    ALWAYSON 出现以下情况已经2次了,记录下: DBCC 执行完毕.如果 DBCC 输出了错误信息,请与系统管理员联系. 消息 2767,级别 16,状态 1,过程 sp_table_statis ...

  3. 一个 Sql语句优化的问题- STATISTICS 统计信息

    前段时间,同事遇到一个 Sql语句的问题,一个列表分页功能响应在30 s以上,看数据库里面的数据条数,数据量也不大,相关字段的一些索引也都有,可就是慢.于是找出具体的sql 语句出来分析,分页功能主要 ...

  4. sql 置顶功能的查询

    sql中有置顶的需求,文章很多条,分页查询,要求置顶的在最前面: 只需要使用: order by 置顶字段 即可

  5. sqlserver2016新功能

    SQL Server 2016中的新功能(数据库引擎) 2017年1月13日  23分钟阅读时长 作者 本人建了个领优惠卷购物群,平时网购可以省点钱.有需要的加群:511169656交流,谢谢 本主题 ...

  6. 全废话SQL Server统计信息(2)——统计信息基础

    接上文:http://blog.csdn.net/dba_huangzj/article/details/52835958 我想在大地上画满窗子,让所有习惯黑暗的眼睛都习惯光明--顾城<我是一个 ...

  7. SQL Server调优系列进阶篇(深入剖析统计信息)

    前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了. 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQ ...

  8. SQL Server调优系列进阶篇 - 深入剖析统计信息

    前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了. 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQ ...

  9. SQL Server 调优系列进阶篇 - 深入剖析统计信息

    前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了. 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQ ...

随机推荐

  1. ppmoney 总结二

    1. return false   ES6函数的扩展:箭头函数  数组 arr.map()   arr.filter() <!DOCTYPE html> <html lang=&qu ...

  2. [MS SQL Server]SQL Server如何开启远程访问

    在日常工作中,经常需要连接到远程的MS SQL Server数据库中.当然也经常会出现下面的连接错误. 解决方法: 1. 设置数据库允许远程连接,数据库实例名-->右键--->属性---C ...

  3. Oracle获取干净的建表DDL语句,不含其它存储、表空间、段属性

    早上一个同事资讯怎么获取到建表语句而且是不带存储那种SQL.Oracle自己提供了一个函数DBMS_METADATA.GET_DDL,但是获取到的建表语句含有存储.表空间.以及一些其他段的属性.如图: ...

  4. NetMQ(四): 推拉模式 Push-Pull

    ZeroMQ系列 之NetMQ 一:zeromq简介 二:NetMQ 请求响应模式 Request-Reply 三:NetMQ 发布订阅模式 Publisher-Subscriber 四:NetMQ ...

  5. UWP 判断windows mobile是使用的实体键还是虚拟按键

    最近在写启动屏幕,发现虚拟按钮会挡住,启动屏幕的最下面的元素,大概有50 px.可是有什么办法知道手机是用的实体键还是虚拟按键吗? 如下图.可以看到红色的部分显示了一点点.代码里设置的是60px. 在 ...

  6. AugularJS特性

    AugularJS特性 AngularJS是一个新出现的强大客户端技术,提供给大家的一种开发强大应用的方式.这种方式利用并且扩展HTML,CSS和javascript,并且弥补了它们的一些非常明显的不 ...

  7. Blend打不开wpf项目,提示无法识别的工具版本“12.0”

          讲项目文件用记事本打开然后修改为“14.0”即可        

  8. javaWeb高级编程(1)

    十月 24, 2016 10:41:43 上午 org.apache.catalina.core.StandardContext setPath警告: A context path must eith ...

  9. dom4j解析示例

    收藏信息.xml <?xml version="1.0" encoding="GB2312" standalone="no"?> ...

  10. 使用nose 进行Python项目的自动化测试

    一.为什么使用nose? 编写测试更容易.nose可以自动识别继承于unittest.TestCase的测试单元,并执行测试,而且,nose也可以测试非继承于unittest.TestCase的测试单 ...