sql server查看当前正在执行的sql

#统计某类sql执行次数,并按总体cpu消耗时间降序排序

复制代码
with a as
(
select er.session_id,db_name(er.database_id) as DBNAME,sy.last_batch AS '最后执行时间',
er.cpu_time ,er.total_elapsed_time/1000 as sum_elapsed_time_s,
CAST(csql.text AS varchar(8000)) AS CallingSQL ,sy.cmd as cmd,sy.status as status,sy.lastwaittype,sy.loginame as loginame,sy.hostname as hostname,
client_net_address  as client_ip,local_net_address '服务器的IP',er.reads,er.writes,er.row_count,
'kill '+cast(er.session_id as varchar(200)) AS 'KILL-SQL'
from master.sys.dm_exec_requests er WITH (NOLOCK)
       CROSS APPLY fn_get_sql (er.sql_handle) csql
left join sysprocesses sy on er.session_id =sy.spid
left join sys.dm_exec_connections dec on dec.session_id=sy.spid
where er.session_id >50
-- AND er.session_id ='56'
and loginame <>'' and CAST(csql.text AS varchar(8000)) like '%%'
)
select DBNAME,a.CallingSQL,count(*) cnt,sum(cpu_time) as sum_cpu_time,sum(sum_elapsed_time_s) as sum_elapsed_time_s,avg(cpu_time) as avg_cpu_time,avg(sum_elapsed_time_s) as avg_elapsed_time_s,
max(cmd) as cmd,max(status) as status,max(loginame) as loginname,max(hostname) as hostname,max(client_ip) as client_ip
from a
where a.CallingSQL not like '%select er.session_id,db_name(er.database_id) as DBNAME%'
group by a.CallingSQL,a.DBNAME
order by sum_cpu_time desc

输出结果示例:

相关推荐
bukeyiwanshui7 分钟前
20260414 正则表达式及shell三剑客
数据库·mysql·正则表达式
cyber_两只龙宝7 分钟前
【Oracle】Oracle之SQL中的单行函数
linux·运维·数据库·sql·云原生·oracle
2201_7568473311 分钟前
mysql字段长度不够用了怎么办_使用alter table扩大varchar长度
jvm·数据库·python
aq553560019 分钟前
Laravel4.x革命性升级:现代PHP开发新纪元
数据库·oracle
Trouvaille ~32 分钟前
【MySQL篇】内外连接:多表关联的完整指南
android·数据库·mysql·面试·后端开发·dql·内外连接
KKKlucifer35 分钟前
三权分立 + AI 审计:解析国内堡垒机的合规与智能双引擎
大数据·数据库·人工智能
空太Jun38 分钟前
Redis 5大核心数据类型与持久化实战
数据库·redis·缓存
Java面试题总结1 小时前
Spring Boot 包扫描新姿势:AutoScan vs @Import vs @ComponentScan 深度对比
java·数据库·spring boot
人工干智能1 小时前
科普:pandas 中的类 SQL语句:transaction.groupby(“card_id“)[‘purchase_day‘].diff()
数据库·sql·pandas
梦想与想象-广州大智汇1 小时前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse