web-dev-qa-db-ja.com

SQL Server2008-特定のテーブルで現在のLOCK_ESCALATIONを取得します

特定のテーブルでLOCK_ESCALATIONの現在の設定を見つける方法はありますか?システムビューから見つけることができますか?

1
bojan

私の知る限り、 SQL Server Profilerを使用して調べる必要がありますLock:Escalationイベント

エスクレーション情報が sys.dm_tran_locks にないか、その前身です

1
gbn

設定を知りたいとのことですが。

これは簡単です。以下のクエリを実行するだけです。可能な値は、TABLE、AUTO、およびDISABLEです。

select t.lock_escalation_desc from sys.tables t where t.name = 'your_table';

TABLEがデフォルトのモードです。このモードでは、ロックはPAGEまたはROWの両方から直接TABLEレベルに移動します。

DISABLEはシナリオによっては役立つ場合がありますが、慎重に使用してください。

AUTOには、ROW/PAGEとTABLEの中間レベルが含まれます。これはPARTITIONレベルです。テーブル全体をロックする代わりに、必要なパーティションのみをロックします。

ソース: https://www.sqlskills.com/blogs/paul/sql-server-2008-partition-level-lock-escalation-details-and-examples/

1
tanitelle