您的位置:首页 > 产品设计 > UI/UE

SQL Server 2016 实时查询统计(Live Query Statistics)

2016-01-18 13:48 357 查看
SQL Server 2016 实时查询统计(Live Query Statistics)

当我们遇到查询超时的时候,会通过预估执行计划分析问题所在,然后做相应的调优。但有时,查询还在运行,而你无法获得实际的执行计划。如果有办法能知道实例内部发生了什么就好了。

SQL Server 2016的实时查询统计(Live Query Statistics),提供了查看一个实时查询的实时执行计划,对当前正在执行的步骤进行了详细的注解。实时查询执行计划显示了整体查询过程,并提供了操作级别的运行时执行统计信息,包括处理的行数、耗时、操作进展等等。这些数据都是实时可用的,而不用等到查询执行完成,这些执行统计信息对于性能问题调优极其有用。

适应版本
该功能从SQL Server 2016 CTP 3.0开始可用,现已在SQL Server 2014 SP1中加入该功能。

适应对象
该特性只对普通表有效;当查询涉及内存优化表或列存储索引时,不能使用。它也不能查看本地编译的存储过程。

警告
该功能主要用于定位问题,使用该功能可能稍微降低整体的查询性能。

显示实时查询统计
显示实时查询执行计划,在工具菜单栏点击“Live Query Statistics”按钮。





你也可以在SQL Server Management Studio中右击选择的查询,然后选择“Include Live Query Statics”来查看实时查询执行计划。





现在执行查询。实时查询执行计划显示了整体的查询过程和运行时执行统计信息(例如耗时、进展等)。查询进展信息和执行统计信息在查询执行的过程中定期更新。使用该信息理解整体查询执行进展和调优慢查询、导致tempdb移除的查询、超时问题。





动态执行计划也可以从“Activity Monitor”中,通过在“Active Expensive Queries”表右击查询语句来访问。





如何启用该特性?
该特性默认是不启用的,这可能是因为进展报告会额外增加开销。统计跟踪架构必须在实时查询统计捕获查询进展信息前启用。你可以在当前当前的查询会话中,通过在SQL Server Management Studio中选择“Include Live Query Statistics”启用统计跟踪架构。还有两种方式可以启用统计跟踪架构,可以用于在其他会话中(例如从Activity Monitor)查看实时查询统计。
1. 在目标会话,执行:
SET STATISTICS XML ON;
或者
SET STATISTICS PROFILE ON;
2. 启用扩展事件query_post_execution_showplan。这是一个服务端的设置,用于在所有会话启用实时查询统计。

许可
生成“Live Query Statistics”结果页需要数据库级别的“SHOWPLAN”权限,查看实时统计需要实例级别的“VIEW SERVER STATE”和执行查询的必要权限。

本文出自 “SQL Server Deep Dives” 博客,请务必保留此出处http://ultrasql.blog.51cto.com/9591438/1736126
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: