Serverkonfiguration: Sperren
Gilt für: SQL Server
In diesem Artikel wird beschrieben, wie Sie die locks
Serverkonfigurationsoption in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfigurieren. Die locks
Option legt die maximale Anzahl verfügbarer Sperren fest, wodurch die Arbeitsspeichermenge begrenzt wird, die die SQL Server-Datenbank-Engine für sie verwendet. Die Standardeinstellung ist 0. Dadurch kann Datenbank-Engine Sperrstrukturen je nach Systemanforderungen dynamisch zuordnen oder die Zuordnung von Sperrstrukturen aufheben.
Wichtig
Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.
Empfehlungen
Diese Option ist eine erweiterte Option und sollte ausschließlich von einem erfahrenen Datenbankadministrator oder einem zertifizierten SQL Server -Experten geändert werden.
Wenn der Server mit locks
"Set" 0
gestartet wird, erwirbt der Sperr-Manager genügend Arbeitsspeicher aus dem Datenbank-Engine für einen anfänglichen Pool von 2.500 Sperrstrukturen. Da der Sperrpool erschöpft ist, wird mehr Arbeitsspeicher für den Pool abgerufen.
Ist im Allgemeinen mehr Arbeitsspeicher für den Sperrpool erforderlich, als im Datenbank-Engine Arbeitsspeicherpool verfügbar ist, und mehr Computerspeicher verfügbar ist (der max server memory
Schwellenwert wurde nicht erreicht), weist die Datenbank-Engine Speicher dynamisch zu, um die Anforderung für Sperren zu erfüllen. Wenn das Zuweisen dieses Speichers jedoch zu einer Auslagerung auf Betriebssystemebene führen würde (z. B. wenn eine andere Anwendung auf demselben Computer wie eine Instanz von SQL Server ausgeführt wird und diesen Arbeitsspeicher verwendet), wird nicht mehr Sperrraum zugewiesen. Der dynamische Sperrpool erhält nicht mehr als 60 Prozent des Speichers, der dem Datenbank-Engine zugeordnet ist. Nachdem der Sperrpool 60 Prozent des von einer Instanz der Datenbank-Engine erworbenen Arbeitsspeicher erreicht hat oder kein mehr Arbeitsspeicher auf dem Computer verfügbar ist, generieren weitere Anforderungen für Sperren einen Fehler.
Wenn Sperren von SQL Server dynamisch verwendet werden dürfen, entspricht dies der empfohlenen Konfiguration. Sie können jedoch die Möglichkeit von SQL Server festlegen locks
und außer Kraft setzen, Sperrressourcen dynamisch zuzuweisen. Wenn locks
dieser Wert auf einen anderen Wert festgelegt ist als 0
, kann der Datenbank-Engine nicht mehr Sperren zuordnen als der in locks
. Erhöhen Sie diesen Wert, wenn SQL Server eine Meldung anzeigt, dass Sie die Anzahl der verfügbaren Sperren überschritten haben. Da jede Sperre Arbeitsspeicher verbraucht (96 Bytes pro Sperre), kann es bei Erhöhung dieses Werts erforderlich werden, dem Server mehr Speicher zuzuweisen.
Die locks
Option wirkt sich auch auf die Eskalation der Sperre aus. Wenn locks
diese Einstellung festgelegt 0
ist, tritt die Sperreskalation auf, wenn der von den aktuellen Sperrstrukturen verwendete Speicher 40 Prozent des Datenbank-Engine Speicherpools erreicht. Wenn locks
diese Option nicht festgelegt 0
ist, tritt die Sperreskalation auf, wenn die Anzahl der Sperren 40 Prozent des für .locks
Berechtigungen
Die Ausführungsberechtigungen für sp_configure
ohne Parameter oder nur mit dem ersten Parameter werden standardmäßig allen Benutzern erteilt. Um sp_configure
mit beiden Parametern auszuführen und eine Konfigurationsoption zu ändern oder die RECONFIGURE
-Anweisung auszuführen, benötigt ein Benutzer die ALTER SETTINGS
-Berechtigung auf Serverebene. Die ALTER SETTINGS
-Berechtigung ist implizit in den festen Serverrollen sysadmin und serveradmin enthalten.
Verwenden von SQL Server Management Studio
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.
Wählen Sie den Knoten Erweitert aus.
Geben Sie unter "Parallelität" den gewünschten Wert für die
locks
Option ein.Verwenden Sie die
locks
Option, um die maximale Anzahl verfügbarer Sperren festzulegen, die die Menge des Arbeitsspeichers begrenzt, den SQL Server für sie verwendet.
Verwenden von Transact-SQL
Stellen Sie eine Verbindung mit dem Datenbank-Engineher.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen. In diesem Beispiel wird gezeigt, wie sp_configure zum Festlegen des Werts der Option
locks
verwendet wird, um die Anzahl der für alle Benutzer verfügbaren Sperren auf20000
zu setzen.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'locks', 20000; GO RECONFIGURE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Weitere Informationen finden Sie unter Serverkonfigurationsoptionen.
Nachverfolgung: Nachdem Sie die Sperroption konfiguriert haben
Der Server muss neu gestartet werden, bevor die Einstellung wirksam werden kann.