ロック状況の確認 †
- 全リスト
SELECT
resource_type AS type --オブジェクトの種類
,resource_associated_entity_id as entity_id --エンティティID
,( CASE WHEN resource_type = 'OBJECT' THEN
OBJECT_NAME( resource_associated_entity_id )
ELSE
( SELECT
OBJECT_NAME( OBJECT_ID )
FROM
sys.partitions
WHERE
hobt_id=resource_associated_entity_id )
END)
AS object_name
,request_mode --ロックの種類
,request_type --要求の種類
,request_status --状態
,request_session_id AS Session_id --セッションID
,(SELECT hostname
FROM sys.sysprocesses
WHERE spid = request_session_id) AS ProcessName
FROM
sys.dm_tran_locks
WHERE
resource_type <> 'DATABASE'
ORDER BY
request_session_id
インテントロック †
ロックエスカレーション †
- システムのリソースが少なくなると行ロックからテーブルロックに自動的に変更する機能
ロックエスカレーション禁止 †
ロックエスカレーションを禁止する †
ALTER TABLE テーブル名
SET ( LOCK_ESCALATION = DISABLE )
ロックエスカレーションの設定を元に戻す †
ALTER TABLE テーブル名
SET ( LOCK_ESCALATION = TABLE )
ロックエスカレーションの設定を確認する †
SELECT NAME ,LOCK_ESCALATION ,LOCK_ESCALATION_DESC FROM sys.tables
デッドロック †
監視 †
NOLOCK †