【SQL 编程你也行】SQL Server 2014新功能之动态视图:sys.dm_exec_query_profiles

本文介绍如何在SQL查询执行过程中实时监控其性能,通过查询动态性能视图来确定查询慢速部分,包括开启跟踪、运行错误SQL、监控查询过程并分析返回结果,以确保执行计划的正确性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


当查询正在执行时,监控实时查询过程。这个动态性能视图,可以确定查询的哪个部分运行的慢。


具体的用法:


1、开启跟踪

SET STATISTICS PROFILE ON;
GO


2、在一个会话中运行一个sql

注意,这个sql是写法有问题的,是笛卡尔积,会产生大量垃圾数据。

 

select *
from [dbo].t1
cross join t1 t2


 

3、监控

 

SELECT node_id,
	   physical_operator_name 物理操作符, 
	   SUM(row_count)         这个操作返回的行数, 
	   SUM(estimate_row_count) AS 估计行数, 
       CAST(SUM(row_count)*100 AS float)/SUM(estimate_row_count) [行数占估计行数%]
FROM sys.dm_exec_query_profiles 
WHERE session_id=52
GROUP BY node_id,physical_operator_name
ORDER BY node_id;

 


下图是返回的结果,而且每次查询都会变化,特别是“这个操作返回的行数”,一开始很小,随着查询一直在运行,返回的行数会越来越多。

通过这个profile,我们可以实时跟踪执行计划中的操作,都返回了多少行,把这个行数和实际的行数对比,来判断执行计划是否正确合理。



 

转载于:https://www.cnblogs.com/momogua/p/8304458.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值