zoukankan      html  css  js  c++  java
  • SqlServer 资源占用情况[简易]

    1、查看CPU占用量最高的会话及SQL语句

    select spid,cmd,cpu,physical_io,memusage,
    (select top 1 [text] from ::fn_get_sql(sql_handle)) sql_text
    from master..sysprocesses order by cpu desc,physical_io desc
    

    2、查看缓存重用次数少,内存占用大的SQL语句 

    SELECT TOP 100 usecounts, objtype, p.size_in_bytes,[sql].[text] 
    FROM sys.dm_exec_cached_plans p OUTER APPLY sys.dm_exec_sql_text (p.plan_handle) sql 
    ORDER BY usecounts,p.size_in_bytes  desc
    

    3、执行最慢的SQL语句

    SELECT
    
    (total_elapsed_time / execution_count)/1000 N'平均时间ms'
    
    ,total_elapsed_time/1000 N'总花费时间ms'
    
    ,total_worker_time/1000 N'所用的CPU总时间ms'
    
    ,total_physical_reads N'物理读取总次数'
    
    ,total_logical_reads/execution_count N'每次逻辑读次数'
    
    ,total_logical_reads N'逻辑读取总次数'
    
    ,total_logical_writes N'逻辑写入总次数'
    
    ,execution_count N'执行次数'
    
    ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
    
    ((CASE statement_end_offset
    
    WHEN -1 THEN DATALENGTH(st.text)
    
    ELSE qs.statement_end_offset END
    
    - qs.statement_start_offset)/2) + 1) N'执行语句'
    
    ,creation_time N'语句编译时间'
    
    ,last_execution_time N'上次执行时间'
    
    FROM
    
    sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
    
    WHERE
    
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
    
    ((CASE statement_end_offset
    
    WHEN -1 THEN DATALENGTH(st.text)
    
    ELSE qs.statement_end_offset END
    
    - qs.statement_start_offset)/2) + 1) not like 'tch%'
    
    ORDER BY
    
    total_elapsed_time / execution_count DESC;
    

    4、总耗CPU最多的前个SQL

    SELECT TOP 20
        total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],
        qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],
        last_execution_time AS [最后一次执行时间],max_worker_time /1000 AS [最大执行时间(ms)],
        SUBSTRING(qt.text,qs.statement_start_offset/2+1, 
            (CASE WHEN qs.statement_end_offset = -1 
            THEN DATALENGTH(qt.text) 
            ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1) 
        AS [使用CPU的语法], qt.text [完整语法],
        qt.dbid, dbname=db_name(qt.dbid),
        qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName
    FROM sys.dm_exec_query_stats qs WITH(nolock)
    CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
    WHERE execution_count>1
    ORDER BY  total_worker_time DESC
    

    5、平均耗CPU最多的前个SQL

    SELECT TOP 20
        total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],
        qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],
        last_execution_time AS [最后一次执行时间],min_worker_time /1000 AS [最小执行时间(ms)],
        max_worker_time /1000 AS [最大执行时间(ms)],
        SUBSTRING(qt.text,qs.statement_start_offset/2+1, 
            (CASE WHEN qs.statement_end_offset = -1 
            THEN DATALENGTH(qt.text) 
            ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1) 
        AS [使用CPU的语法], qt.text [完整语法],
        qt.dbid, dbname=db_name(qt.dbid),
        qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName
    FROM sys.dm_exec_query_stats qs WITH(nolock)
    CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
    WHERE  execution_count>1
    ORDER BY (qs.total_worker_time/qs.execution_count/1000) DESC
    

      

     

  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/approx/p/12038967.html
Copyright © 2011-2022 走看看