SQL Server 2016:实时查询统计

阅读数:1378 2015 年 7 月 7 日

话题:性能调优语言 & 开发

一个数据库查询超时了,而你并不知道原因。估计查询计划可以揭示问题所在,因此,你彻底地消除了超时。但一个小时后,查询还在运行,而你无法获得真正的执行计划。要是有一种方法可以找出服务器内部实际正在发生的事情就好了。

借助 SQL Server 2016 中的“实时查询统计(Live Query Statistics)”,你现在可以回答那个问题了。这项新特性为 DBA 提供了一个执行计划的实时版本,对当前正在执行的步骤进行了详细的注解。

统计信息显示方式同在 Visual Studio 中运行 SQL Server 集成服务作业时看到的东西类似,但提供了更底层的细节,包括“处理的行数、耗时、操作进展,等等。”下面是一个来自文档的示例:

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

该特性默认是不启用的,这可能是因为进展报告会额外增加开销。你可以在会话级别启用它,也可以通过启用“扩充事件(extended event)”query_post_execution_showplan在服务器层面启用它。

查看英文原文SQL Server 2016: Live Query Statistics