Freigeben über


Serverkonfiguration: locks

Gilt für:SQL Server

In diesem Artikel wird beschrieben, wie die Serverkonfigurationsoption locks in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL konfiguriert wird. Mit der Option locks wird die maximale Anzahl von verfügbaren Sperren festgelegt. Diese Option beschränkt die Arbeitsspeichermenge, die die SQL Server-Datenbank-Engine für Sperren 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 nur von einem erfahrenen Datenbankexperten geändert werden.

Wenn der Server gestartet wird, während die Option locks auf 0 festgelegt ist, richtet der Sperren-Manager ausreichend Arbeitsspeicher von der Datenbank-Engine für einen ersten Pool von 2.500 Sperrstrukturen ein. Wenn der Sperrenpool verbraucht ist, wird zusätzlicher Arbeitsspeicher für den Pool eingerichtet.

Wenn für den Sperrenpool mehr Arbeitsspeicher benötigt wird als im Datenbank-Engine-Speicherpool verfügbar ist und auf dem Computer weiterer Speicher zur Verfügung steht (wenn also der Schwellenwert max server memory (MB) noch nicht erreicht ist), weist die Datenbank-Engine dynamisch Speicher zu, um die Sperrenanforderung zu erfüllen. Wenn durch das Zuweisen dieses Speichers jedoch eine Auslagerung auf Betriebssystemebene ausgelöst würde (wenn beispielsweise eine weitere Anwendung auf dem gleichen Computer als Instanz von SQL Server ausgeführt wird und diesen Arbeitsspeicher verwendet), wird kein weiterer Speicherplatz für Sperren zugewiesen. Der dynamische Sperrenpool ruft nicht mehr als 60 Prozent des Speichers ab, der der Datenbank-Engine zugewiesen ist. Wenn der Sperrenpool 60 Prozent des von einer Instanz der Datenbank-Engine angeforderten Speichers erreicht oder wenn auf dem Computer kein weiterer Speicher verfügbar ist, wird bei weiteren Sperrenanforderungen ein Fehler generiert.

Wenn Sperren von SQL Server dynamisch verwendet werden dürfen, entspricht dies der empfohlenen Konfiguration. Sie können locks jedoch festlegen und die Möglichkeit der dynamischen Zuweisung von Sperrenressourcen durch SQL Server außer Kraft setzen. Wenn locks auf einen anderen Wert als 0 festgelegt wird, kann die Datenbank-Engine dem unter locks angegebenen Wert keine weiteren Sperren zuweisen. Erhöhen Sie diesen Wert, wenn SQL Server die Meldung anzeigt, dass die Anzahl der verfügbaren Sperren überschritten wurde. Da jede Sperre Arbeitsspeicher verbraucht (96 Bytes pro Sperre), kann es bei Erhöhung dieses Werts erforderlich werden, dem Server mehr Speicher zuzuweisen.

Die Option locks wirkt sich auch darauf aus, wann eine Sperrenausweitung stattfindet. Wenn locks auf 0 festgelegt ist, findet eine Sperrenausweitung statt, sobald der von den aktuellen Sperrenstrukturen verwendete Speicher 40 Prozent des Datenbank-Engine-Speicherpools erreicht hat. Wenn locks nicht auf 0 festgelegt ist, findet eine Sperrenausweitung statt, sobald die Anzahl der Sperren 40 Prozent des für locks festgelegten Werts erreicht.

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

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.

  2. Wählen Sie den Knoten Erweitert aus.

  3. Geben Sie unter Parallelitätden gewünschten Wert für die Option locks ein.

    Mithilfe der Option locks können Sie die maximale Anzahl verfügbarer Sperren festlegen und so die Menge an Arbeitsspeicher begrenzen, die SQL Server für Sperren verwendet.

Verwenden von Transact-SQL

  1. Stellen Sie eine Verbindung mit dem Datenbank-Engineher.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. 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 auf 20000zu 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: Nach dem Konfigurieren der Option „locks“

Der Server muss neu gestartet werden, bevor die Einstellung wirksam werden kann.