Serverkonfiguration: Maximaler Speicher für den Sperr-Manager-Cache (%)

Gilt für: SQL Server 2025 (17.x) und höhere Versionen

Die max lock manager cache memory (%) Serverkonfigurationsoption begrenzt den Arbeitsspeicher, den der Sperr-Manager-Cache verwenden kann, als Prozentsatz des gesamten vom SQLOS zugesicherten Arbeitsspeichers. Standardmäßig ist die Konfiguration auf 20 Prozent festgelegt.

Availability

Diese Konfigurationsoption ist in den folgenden SQL-Plattformen und -Versionen verfügbar:

  • SQL Server 2025 (17.x) Kumulatives Update (CU) 5 und höher

Bemerkungen

Wenn eine Sperre freigegeben wird, wird der von der Sperrstruktur verwendete Speicher nicht freigegeben, sondern vom Sperr-Manager zwischengespeichert, um den Speicherzuweisungsaufwand bei nachfolgenden Sperren zu vermeiden und die Leistung zu verbessern.

Vor SQL Server 2025 (17.x) CU 5 und in früheren Versionen von SQL Server kann der Sperr-Manager-Cache bis zur maximalen Größe des Sperr-Manager-Speichers wachsen, was 60 Prozent des gesamten vom SQLOS zugesicherten Speichers beträgt. Eine Workload kann die Größe des Sperr-Manager-Caches bis zu diesem Grenzwert vergrößern. Diese ungewöhnliche Situation kann beispielsweise in großen gleichzeitigen Abfrageworkloads auftreten, wenn die Sperreskalation für die Datenbank-Engine Instanz deaktiviert ist. Wenn der Sperr-Manager-Cache groß wird, wird der Pufferpool, der Plancache und andere Speichercaches für eine SQL Server Instanz verkleinern, wodurch die Leistung reduziert wird.

In SQL Server 2025 (17.x) CU 5 und höher ist die maximale Größe des Sperr-Manager-Caches standardmäßig auf 20 Prozent beschränkt. Der Speicher des Sperr-Managers kann bei Bedarf für die Arbeitsauslastung immer noch bis zu 60 Prozent des von SQLOS zugesicherten Speichers wachsen. Wenn Jedoch Sperren freigegeben werden, wird Der Speicher freigegeben, anstatt zwischengespeichert zu werden, wenn der Sperr-Manager-Cache bereits seinen konfigurierten Grenzwert erreicht hat.

Das Festlegen der max lock manager cache memory (%) Konfiguration auf einen Wert, der größer als 20 Prozent ist, wird nicht empfohlen, wird jedoch aus Gründen der Abwärtskompatibilität unterstützt. Sie können den Wert im Bereich von 20 bis 60 Prozent festlegen.

Sie können die Gesamtgröße des Sperr-Manager-Speichers mithilfe von sys.dm_os_memory_clerks überwachen, mit OBJECTSTORE_LOCK_MANAGER dem Typ des Speicherkaufmanns. Bei einer Instanz des Leerlaufdatenbankmoduls ist der gemeldete Wert die Größe des Speichers für den Sperr-Manager-Cache.

Beispiele

A. Festlegen der maximalen Größe des Cachespeichers des Sperr-Managers

Im folgenden Beispiel wird der Cachespeicher des maximalen Sperr-Managers auf 25 Prozent festgelegt:

EXECUTE sp_configure 'show advanced options', 1;
RECONFIGURE;

EXECUTE sp_configure 'max lock manager cache memory (%)', 25;
RECONFIGURE;

B. Überwachen des Speichers des Sperr-Managers

Das folgende Beispiel zeigt die aktuelle Größe des Speichers des Sperr-Managers. Der Wert enthält den Speicher, der von den abgerufenen Sperren (sofern vorhanden) gehalten wird, und den zwischengespeicherten Speicher, um die Leistung der nachfolgenden Sperrerfassung zu verbessern.

SELECT SUM(pages_kb) / 1024. AS lock_manager_cache_memory_mb
FROM sys.dm_os_memory_clerks
WHERE type = 'OBJECTSTORE_LOCK_MANAGER';