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”按钮。

clip_image002


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

clip_image004


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

clip_image006


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

clip_image008


如何启用该特性?

该特性默认是不启用的,这可能是因为进展报告会额外增加开销。统计跟踪架构必须在实时查询统计捕获查询进展信息前启用。你可以在当前当前的查询会话中,通过在SQL Server Management Studio中选择“Include Live Query Statistics”启用统计跟踪架构。还有两种方式可以启用统计跟踪架构,可以用于在其他会话中(例如从Activity Monitor)查看实时查询统计。

1. 在目标会话,执行:

1
SET  STATISTICS  XML  ON ;

或者

1
SET  STATISTICS  PROFILE  ON ;

2. 启用扩展事件query_post_execution_showplan。这是一个服务端的设置,用于在所有会话启用实时查询统计。


许可

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
















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1736126 ,如需转载请自行联系原作者


相关文章
|
3月前
|
SQL 监控 关系型数据库
一键开启百倍加速!RDS DuckDB 黑科技让SQL查询速度最高提升200倍
RDS MySQL DuckDB分析实例结合事务处理与实时分析能力,显著提升SQL查询性能,最高可达200倍,兼容MySQL语法,无需额外学习成本。
|
3月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
7月前
|
SQL 数据挖掘 数据库
第三篇:高级 SQL 查询与多表操作
本文深入讲解高级SQL查询技巧,涵盖多表JOIN操作、聚合函数、分组查询、子查询及视图索引等内容。适合已掌握基础SQL的学习者,通过实例解析INNER/LEFT/RIGHT/FULL JOIN用法,以及COUNT/SUM/AVG等聚合函数的应用。同时探讨复杂WHERE条件、子查询嵌套,并介绍视图简化查询与索引优化性能的方法。最后提供实践建议与学习资源,助你提升SQL技能以应对实际数据处理需求。
562 1
|
3月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
2月前
|
SQL 关系型数据库 MySQL
(SQL)SQL语言中的查询语句整理
查询语句在sql中占了挺大一部分篇幅,因为在数据库中使用查询语句的次数远多于更新与删除命令。而查询语句比起其他语句要更加的复杂,可因为sql是数据库不可或缺的一部分,所以即使不懂,也必须得弄懂,以上。
249 0
|
4月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
318 18
|
4月前
|
SQL 人工智能 数据库
【三桥君】如何正确使用SQL查询语句:避免常见错误?
三桥君解析了SQL查询中的常见错误和正确用法。AI产品专家三桥君通过三个典型案例:1)属性重复比较错误,应使用IN而非AND;2)WHERE子句中非法使用聚合函数的错误,应改用HAVING;3)正确的分组查询示例。三桥君还介绍了学生、课程和选课三个关系模式,并分析了SQL查询中的属性比较、聚合函数使用和分组查询等关键概念。最后通过实战练习帮助读者巩固知识,强调掌握这些技巧对提升数据库查询效率的重要性。
162 0
|
7月前
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
|
5月前
|
SQL
SQL中如何删除指定查询出来的数据
SQL中如何删除指定查询出来的数据
|
6月前
|
SQL 存储 弹性计算
OSS Select 加速查询:10GB CSV 文件秒级过滤的 SQL 语法优化技巧
OSS Select 可直接在对象存储上执行 SQL 过滤,跳过文件下载,仅返回所需数据,性能比传统 ECS 方案提升 10~100 倍。通过减少返回列、使用等值查询、避免复杂函数、分区剪枝及压缩优化等技巧,可大幅降低扫描与传输量,显著提升查询效率并降低成本。
213 0