SQL Server 2016:实时查询统计

jopen 9年前

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

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

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

SQL Server 2016:实时查询统计

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

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

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

</div> 原文 http://www.infoq.com/cn/news/2015/07/Live-Query-Stats