09-sp_lock和sys.dm_tran_locks的用法


一、總結

1.網址

https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-lock-transact-sql?redirectedfrom=MSDN&view=sql-server-2017(sp_lock
https://docs.microsoft.com/zh-cn/sql/relational-databases/system-dynamic-management-views/sys-dm-tran-locks-transact-sql?view=sql-server-2017(sys.dm_tran_locks)

2.查出結果具體含義參考官方文檔。

3.每個鎖會占用96字節的內存,如果有大量的小粒度鎖,則會占據大量的內存。

二、用到的SQL

1.根據object_id查看對象名稱
命令:select OBJECT_NAME(245575913)
           SELECT OBJECT_ID('run.dbo.T1')

   

 2.查詢所有的鎖

命令:exec sp_lock

Type值的選項含義:

  KEY:索引內保護可串行事務中一系列鍵的鎖

  PAG:數據頁或索引頁的鎖

  EXT:對某區的鎖

3.查詢指定進程的鎖

命令:exec sp_lock 55

 4.根據系統視圖查詢指定進程的鎖

命令:select * from sys.dm_tran_locks where request_session_id=55

 5.顯示某個庫的鎖信息,參數是dbid

命令:SELECT resource_type, resource_associated_entity_id,
request_status, request_mode,request_session_id,
resource_description
FROM sys.dm_tran_locks
WHERE resource_database_id = 5

6.顯示阻塞信息
命令:SELECT
t1.resource_type,
t1.resource_database_id,
t1.resource_associated_entity_id,
t1.request_mode,
t1.request_session_id,
t2.blocking_session_id
FROM sys.dm_tran_locks as t1
INNER JOIN sys.dm_os_waiting_tasks as t2
ON t1.lock_owner_address = t2.resource_address;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM