• 首页
  • 电影
  • Js
  • 前端
  • 新旅
  • 奇技
  • 网安
  • 歌单
  • 关于
  • 搜索
  • 夜间模式
    ©2013-2025  成长小破站 Theme by OneBlog
    搜索
    标签
    # css # js # uniapp # ps # chrome # 小程序 # javascript # 布局 # typecho # 激活码
  • 首页>
  • 网络安全>
  • 正文
  • sqlserver 如何查看cpu占用高 排查

    2023年09月11日 1.8 k 阅读 0 评论 2029 字

    安装了SQLSERVER后就自带一个监视器功能

    右键数据库根目录--活动和监视器---可点击表头进行排序查看最近耗费大量资源的查询

    当然另一种方式是通过查询SQL语句

    查询sqlserver当前在总CPU使用率中的占比

    DECLARE @init_sum_cpu_time int,
            @utilizedCpuCount int
    --get CPU count used by SQL Server
    SELECT @utilizedCpuCount = COUNT( * )
    FROM sys.dm_os_schedulers
    WHERE status = 'VISIBLE ONLINE'
    --calculate the CPU usage by queries OVER a 5 sec interval
    SELECT @init_sum_cpu_time = SUM(cpu_time)
    FROM sys.dm_exec_requests WAITFOR DELAY '00:00:05'SELECT CONVERT(DECIMAL(5,
             2),
             ((SUM(cpu_time) - @init_sum_cpu_time) / (@utilizedCpuCount * 5000.00)) * 100) AS [CPU FROM Queries AS Percent of Total CPU Capacity]
    FROM sys.dm_exec_requests

    查看当前占用CPU高的查询:

    SELECT TOP 100 s.session_id,
               r.status,
               r.cpu_time,
               r.logical_reads,
               r.reads,
               r.writes,
               r.total_elapsed_time / (1000 * 60) 'Elaps M',
               SUBSTRING(st.TEXT, (r.statement_start_offset / 2) + 1,
               ((CASE r.statement_end_offset
                    WHEN -1 THEN DATALENGTH(st.TEXT)
                    ELSE r.statement_end_offset
                END - r.statement_start_offset) / 2) + 1) AS statement_text,
               COALESCE(QUOTENAME(DB_NAME(st.dbid)) + N'.' + QUOTENAME(OBJECT_SCHEMA_NAME(st.objectid, st.dbid))
               + N'.' + QUOTENAME(OBJECT_NAME(st.objectid, st.dbid)), '') AS command_text,
               r.command,
               s.login_name,
               s.host_name,
               c.client_net_address,
               s.program_name,
               s.last_request_end_time,
               s.login_time,
               r.open_transaction_count
    FROM sys.dm_exec_connections c
    JOIN sys.dm_exec_sessions s ON c.session_id= s.session_id
    JOIN sys.dm_exec_requests r ON r.session_id = s.session_id CROSS APPLY sys.Dm_exec_sql_text(r.sql_handle) AS st
    -- WHERE r.session_id != @@SPID
    ORDER BY r.cpu_time DESC
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    sqlserversql
    — END —
    首页电影Js前端新旅奇技网安歌单关于
    Copyright©2013-2025  All Rights Reserved.  Load:0.031 s
    豫公网安备41050202000235   豫ICP备18019224号-2
    Theme by OneBlog V3.6.4
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。