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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

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


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 ,如需转载请自行联系原作者


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
SQL 数据挖掘 数据库
第三篇:高级 SQL 查询与多表操作
本文深入讲解高级SQL查询技巧,涵盖多表JOIN操作、聚合函数、分组查询、子查询及视图索引等内容。适合已掌握基础SQL的学习者,通过实例解析INNER/LEFT/RIGHT/FULL JOIN用法,以及COUNT/SUM/AVG等聚合函数的应用。同时探讨复杂WHERE条件、子查询嵌套,并介绍视图简化查询与索引优化性能的方法。最后提供实践建议与学习资源,助你提升SQL技能以应对实际数据处理需求。
162 1
|
4月前
|
SQL 运维 监控
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
|
4月前
|
SQL 索引
【YashanDB知识库】字段加上索引后,SQL查询不到结果
【YashanDB知识库】字段加上索引后,SQL查询不到结果
|
2月前
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
|
4月前
|
SQL 人工智能 自然语言处理
OmniSQL:开源文本到SQL神器!自然语言秒转查询到复杂多表连接等SQL需求
OmniSQL是开源的文本到SQL转换模型,通过创新的数据合成框架生成250万条高质量样本,支持7B/14B/32B三种模型版本,能处理从简单查询到复杂多表连接等各种SQL需求。
374 16
OmniSQL:开源文本到SQL神器!自然语言秒转查询到复杂多表连接等SQL需求
|
4月前
|
SQL 大数据 数据挖掘
玩转大数据:从零开始掌握SQL查询基础
玩转大数据:从零开始掌握SQL查询基础
206 35
|
4月前
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
5月前
|
SQL 关系型数据库 OLAP
云原生数据仓库AnalyticDB PostgreSQL同一个SQL可以实现向量索引、全文索引GIN、普通索引BTREE混合查询,简化业务实现逻辑、提升查询性能
本文档介绍了如何在AnalyticDB for PostgreSQL中创建表、向量索引及混合检索的实现步骤。主要内容包括:创建`articles`表并设置向量存储格式,创建ANN向量索引,为表增加`username`和`time`列,建立BTREE索引和GIN全文检索索引,并展示了查询结果。参考文档提供了详细的SQL语句和配置说明。
129 2
|
4月前
|
SQL 缓存 关系型数据库
SQL为什么不建议执行多表关联查询
本文探讨了SQL中不建议执行多表关联查询的原因,特别是MySQL与PG在多表关联上的区别。MySQL仅支持嵌套循环连接,而不支持排序-合并连接和散列连接,因此在多表(超过3张)关联查询时效率较低。文章还分析了多表关联查询与多次单表查询的效率对比,指出将关联操作放在Service层处理的优势,包括减少数据库计算资源消耗、提高缓存效率、降低锁竞争以及更易于分布式扩展等。最后,通过实例展示了如何分解关联查询以优化性能。
129 0
|
5月前
|
SQL 数据可视化 IDE
SQL做数据分析的困境,查询语言无法回答的真相
SQL 在简单数据分析任务中表现良好,但面对复杂需求时显得力不从心。例如,统计新用户第二天的留存率或连续活跃用户的计算,SQL 需要嵌套子查询和复杂关联,代码冗长难懂。Python 虽更灵活,但仍需变通思路,复杂度较高。相比之下,SPL(Structured Process Language)语法简洁、支持有序计算和分组子集保留,具备强大的交互性和调试功能,适合处理复杂的深度数据分析任务。SPL 已开源免费,是数据分析师的更好选择。

热门文章

最新文章