Freigeben über


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" 0gestartet 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 0ist, 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 0ist, 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

  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ä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

  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: Nachdem Sie die Sperroption konfiguriert haben

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