適用対象: SQL Server 2025 (17.x) 以降のバージョン
max lock manager cache memory (%) サーバー構成オプションは、ロック マネージャー キャッシュが使用できるメモリの量を、SQLOS コミット済みメモリの合計に対する割合として制限します。 既定では、構成は 20% に設定されています。
Availability
この構成オプションは、次の SQL プラットフォームとバージョンで使用できます。
- SQL Server 2025 (17.x) 累積的な更新プログラム (CU) 5 以降のバージョン
Remarks
ロックが解放されると、ロック構造によって使用されるメモリは解放されませんが、ロック マネージャーによってキャッシュされ、後続のロック取得でのメモリ割り当てのオーバーヘッドを回避し、パフォーマンスを向上させます。
SQL Server 2025 (17.x) CU 5 以前のバージョンのSQL Serverでは、ロック マネージャー キャッシュはロック マネージャー メモリの最大サイズ (SQLOS によってコミットされたメモリの合計の 60%) にまで拡張される可能性があります。 ワークロードでは、ロック マネージャー キャッシュのサイズをこの制限まで拡大できます。 たとえば、この一般的でない状況は、データベース エンジン インスタンスに対してロックエスカレーションが無効になっている場合に、大規模な同時実行クエリ ワークロードで発生する可能性があります。 ロック マネージャー キャッシュが大きくなると、SQL Server インスタンスのバッファー プール、プラン キャッシュ、およびその他のメモリ キャッシュが縮小され、パフォーマンスが低下します。
SQL Server 2025 (17.x) CU 5 以降のバージョンでは、ロック マネージャー キャッシュの最大サイズは既定で 20% に制限されています。 ロック マネージャー メモリは、ワークロードで必要な場合、SQLOS コミット メモリの 60% まで拡張できます。 ただし、ロックが解放されると、ロック マネージャー キャッシュが構成済みの制限に既に達している場合は、キャッシュではなくメモリが解放されます。
max lock manager cache memory (%)構成を 20% を超える値に設定することはお勧めしませんが、下位互換性のためにサポートされています。 この値は、20 ~ 60% の範囲で設定できます。
sys.dm_os_memory_clerksを使用して、OBJECTSTORE_LOCK_MANAGERをメモリ・クラーク・タイプとして使用して、ロック・マネージャー・メモリーの合計サイズをモニターできます。 アイドル状態のデータベース エンジン インスタンスでは、報告される値はロック マネージャー キャッシュ メモリのサイズです。
Examples
A. ロック マネージャー キャッシュ メモリの最大サイズを設定する
次の例では、最大ロック マネージャー キャッシュ メモリを 25% に設定します。
EXECUTE sp_configure 'show advanced options', 1;
RECONFIGURE;
EXECUTE sp_configure 'max lock manager cache memory (%)', 25;
RECONFIGURE;
B. ロック マネージャーのメモリを監視する
次の例は、ロック マネージャー メモリの現在のサイズを示しています。 この値には、取得したロックによって保持されているメモリ (存在する場合) と、後続のロック取得のパフォーマンスを向上させるためにキャッシュされたメモリが含まれます。
SELECT SUM(pages_kb) / 1024. AS lock_manager_cache_memory_mb
FROM sys.dm_os_memory_clerks
WHERE type = 'OBJECTSTORE_LOCK_MANAGER';