xiyanglvbb 2021-09-01 15:45 采纳率: 100%
浏览 105
已结题

SQLSERVER wait_info问题

sqlserver数据库有几张表处于阻塞,查看system_health扩展事件中的wait_info事件,wait_resource 分析不出来是什么资源,请指导一下如何分析这个资源是什么,谢谢。

img

  • 写回答

2条回答 默认 最新

  • 「已注销」 2021-09-02 12:00
    关注

    121238434800不是object_id,它是内存地址,所以不能object_name来获取,正确的做法应该是拿着第一张图的session_id去查,参考如下sql

    SELECT  p.[session_id] ,
             p.[request_id] ,
             p.[start_time] ,
             p.[status] ,
             p.[command] ,
             p.[blocking_session_id] ,
             p.[wait_type] ,
             p.[wait_time] ,
             p.[wait_resource] ,
             p.[total_elapsed_time] ,
             p.[open_transaction_count] ,
             p.[transaction_isolation_level] ,
             SUBSTRING(qt.[text], p.[statement_start_offset] / 2,
                       ( CASE WHEN p.[statement_end_offset] = -1
                              THEN LEN(CONVERT(NVARCHAR(MAX), qt.[text])) * 2
                              ELSE p.[statement_end_offset]
                         END - p.[statement_start_offset] ) / 2) AS 'sql statement' ,
             p.[statement_end_offset] ,
             batch = qt.[text]
     FROM    master.sys.[dm_exec_requests] p
             CROSS APPLY [sys].[dm_exec_sql_text](p.[sql_handle]) AS qt
     WHERE   p.[session_id] > 50
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 赞助了问题酬金 9月1日
  • 创建了问题 9月1日