SQL Server 查找占用CUP内存的SQL

本文通过使用SQL Server DMV(动态管理视图)来识别最占内存和CPU的SQL查询,进而指导我们进行索引优化等操作以提升系统性能。

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

SqlServer2008,系统巨慢,8核CPU都达到99%,内存占用超过10G,使用下边sql确定罪魁祸首,建索引改sql。
'=======================================================
'最占内存的sql
'=======================================================
select q.query_hash,   q.number_of_entries,   t.text as sample_query,   p.query_plan as sample_plan  
from (
    select top 20 query_hash,   count(*) as number_of_entries,   min(sql_handle) as sample_sql_handle,   
        min(plan_handle) as sample_plan_handle  
    from sys.dm_exec_query_stats  
    group by query_hash  
    having count(*) > 1  
    order by count(*) desc
        ) as q  
cross apply sys.dm_exec_sql_text(q.sample_sql_handle) as t  
cross apply sys.dm_exec_query_plan(q.sample_plan_handle) as p
'=======================================================
'最占CPU的sql
'=======================================================
select q.total_cpu_time, q.total_execution_count, t.text as sample_query, p.query_plan as sample_plan  
from (
    select top 50   
        sum(total_worker_time) as total_cpu_time,   sum(execution_count) as total_execution_count,  
        count(*) as  number_of_statements,   plan_handle   
    from   sys.dm_exec_query_stats
    group by plan_handle  
    order by sum(total_worker_time) desc  
) as q
cross apply sys.dm_exec_sql_text(q.plan_handle) as t  
cross apply sys.dm_exec_query_plan(q.plan_handle) as p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值