Sql server 获取为锁锁定的索引的名称:获取的跟踪事件
我正在使用SQL Server Profiler捕获跟踪事件,我希望能够识别锁应用于密钥类型锁的索引的名称 我可以对对象锁类型执行此操作(通过使用跟踪中Sql server 获取为锁锁定的索引的名称:获取的跟踪事件,sql-server,locking,trace,Sql Server,Locking,Trace,我正在使用SQL Server Profiler捕获跟踪事件,我希望能够识别锁应用于密钥类型锁的索引的名称 我可以对对象锁类型执行此操作(通过使用跟踪中ObjectID列中的值执行以下查询): 但是,对于钥匙锁类型,ObjectID列为空,ObjectID2列包含一个bigint值,该值太大,无法使用上述查询 如何从我的跟踪中找到钥匙锁适用于哪个索引?请从一个非常智能的SQL Server MVP中查看这个答案 如果捕获了锁跟踪,并且在事务打开时,在查询窗口中输入 select * from
ObjectID
列中的值执行以下查询):
但是,对于钥匙锁类型,ObjectID
列为空,ObjectID2
列包含一个bigint
值,该值太大,无法使用上述查询
如何从我的跟踪中找到钥匙锁适用于哪个索引?请从一个非常智能的SQL Server MVP中查看这个答案 如果捕获了锁跟踪,并且在事务打开时,在查询窗口中输入
select * from sys.dm_tran_locks
exec sp_lock
您将看到与跟踪中的TextData列相关的各种信息。这似乎是一个被锁定的物理页面/位置-索引本身没有锁,锁主要用于键(记录)或页面
select * from sys.dm_tran_locks
exec sp_lock