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