Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 Arbeitslast kann die Größe des Sperr-Manager-Caches bis zu diesem Limit erhöhen. Beispielsweise kann diese ungewöhnliche Situation bei umfangreichen gleichzeitigen Abfrageworkloads auftreten, wenn die Sperreskalierung für die Database-Engine-Instanz deaktiviert ist. Wenn der Cache des Sperrmanagers zu groß wird, schrumpfen der Pufferpool, der Plan-Cache und andere Speichercaches einer SQL Server-Instanz, was die Leistung verringert.
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 vom Sperr-Manager verwendete Speicher kann bei Bedarf, wenn die Arbeitslast dies erfordert, weiterhin auf bis zu 60 Prozent des von SQLOS reservierten Speichers anwachsen. Wenn jedoch Sperren freigegeben werden, wird Speicher freigegeben, anstatt zwischengespeichert zu werden, falls der Cache des Sperrmanagers bereits sein konfiguriertes Limit 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 vom Sperr-Manager verwendete Gesamtspeichergröße mithilfe von sys.dm_os_memory_clerks überwachen, wobei OBJECTSTORE_LOCK_MANAGER der Speicherclerktyp ist. Bei einer inaktiven Instanz der Datenbank-Engine ist der gemeldete Wert die Größe des Cache-Speichers des Sperrmanagers.
Beispiele
A. Festlegen der maximalen Größe des Cachespeichers des Sperr-Managers
Im folgenden Beispiel wird der maximale Cache-Speicher des Sperr-Managers auf 25 % festgelegt:
EXECUTE sp_configure 'show advanced options', 1;
RECONFIGURE;
EXECUTE sp_configure 'max lock manager cache memory (%)', 25;
RECONFIGURE;
B. Speicher des Sperrmanagers überwachen
Das folgende Beispiel zeigt die aktuelle Größe des Speichers des Sperrmanagers. 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';