sql server 错误 - 超过锁定请求超时

标签 sql sql-server logging locking

运行选择查询时出现错误“锁定请求超时”。

我知道这个错误什么时候会出现。一些事务应该锁定表。

但我需要知道如何找到它。

请注意,当它被锁定时,我无法实时检查它。就像过去发生的那样,但我需要知道当时阻止它的其他事务/查询是什么。

简单地说,我希望在发生这种情况时将这些事件记录在 sql 错误日志中,以便我以后可以查看并找出谁是长时间运行的查询阻塞它。

知道如何记录它。
我试图设置跟踪标志并检查。
DBCC TRACEON (1204,1222,-1)
但我找不到与此相关的任何记录。
提前致谢。

最佳答案

你运行的是什么版本的sql server?如果您使用的是 SQL 2008 之前的版本,那么您将需要与我们的 IT 人员一起实时分析它。

如果是 2008 年,您可以回顾性地查看死锁事件,因为它们在管理 View 中公开。它存储为 XML,但您可以很容易地将其分解...

Select 
    DLEvent.XEvent.value('(data/value)[1]', 'varchar(max)') as DeadlockGraph
From
    (
        select CAST(target_data as xml) as DLData
        from sys.dm_xe_session_targets st
        join sys.dm_xe_sessions s 
        on s.address = st.event_session_address
        where name = 'system_health'
    ) AS DLData

CROSS APPLY DLData.nodes ('//RingBufferTarget/event') AS DLEvent (XEvent)

Where DLEvent.XEvent.value('@name', 'varchar(max)') = 'xml_deadlock_report'

关于sql server 错误 - 超过锁定请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4506970/

相关文章:

mysql - 在 "in"运算符上指定表列

mysql - 如何统计非空字段的数量?

SQL 脚本语法错误

sql - 逃避动态 SQL 的更优雅的方法?

javascript - 将值插入 SQL 本地数据库并使用 Javascript 打印表数据

python - 运行时警告: invalid value encountered in log

java - 记录 NullPointerException?

SQL 中的 PhpStorm 数据库前缀

linux - 使用 CURL 添加请求时间戳

c# - 将值成员从数据库分配给组合框