サーバー構成: 最大ロック マネージャー キャッシュ メモリ (%)

適用対象: 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';