下面介绍如何使用SQL Server sys.dm_tran_locks动态管理视图监视数据库中锁的活动。这个被DMV监视的示例查询使用数据表锁提示。
第一步,打开一个新的查询编辑器窗口,执行如下的命令:
USE AdventureWorks
BEGIN TRAN
SELECT productID,ModifiedDate
FROM Production.ProductDocument
WITH (TABLOCKX)
第二步,打开第二个查询,执行下面的查询
SELECT request_session_id seesionid,
resource_type type,
resource_database_id dbid,
OBJECT_NAME(resource_associated_entity_id,resource_database_id) objectname,
request_mode rmode,
request_status rstatus
FROM sys.dm_tran_locks
WHERE resource_type IN('DATABASE','OBJECT')
查询返回了锁会话标识符(服务器进程ID,也就是SPID)、被锁定的资源、数据库、对象、资源模式和锁状态等信息:
resource_typP列