locks (Option)

Mithilfe der Option locks können Sie die maximale Anzahl verfügbarer Sperren festlegen und so die Menge an Arbeitsspeicher begrenzen, die Database Engine (Datenbankmodul) für Sperren verwendet. Der Standardwert ist 0. Dadurch kann Database Engine (Datenbankmodul) je nach Systemanforderungen Sperrstrukturen dynamisch zuordnen oder die Zuordnung von Sperrstrukturen aufheben.

Wichtiger HinweisWichtig

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie so bald wie möglich das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

Wenn der Server mit einer Einstellung von 0 für locks gestartet wurde, reserviert sich der Sperren-Manager ausreichend Arbeitsspeicher von Database Engine (Datenbankmodul) für einen anfänglichen Pool von 2.500 Sperrstrukturen. Wenn der Pool ausgeschöpft ist, wird zusätzlicher Arbeitsspeicher für den Pool reserviert.

Wenn für den Sperrenpool mehr Arbeitsspeicher benötigt wird, als im Arbeitsspeicherpool von Database Engine (Datenbankmodul) verfügbar ist, und weiterer Arbeitsspeicher auf dem Computer zur Verfügung steht (der Schwellenwert max server memory wurde noch nicht erreicht), wird der Arbeitsspeicher entsprechend den Sperranforderungen von Database Engine (Datenbankmodul) dynamisch zugeordnet. Wenn jedoch das Zuordnen dieses Arbeitsspeichers ein Auslagern auf Betriebssystemebene verursachen würde, wird kein zusätzlicher Speicherplatz für Sperren zugeordnet. Dies ist z. B. der Fall, wenn eine andere Anwendung auf demselben Computer wie eine Instanz von SQL Server ausgeführt wird und diesen Arbeitsspeicher beansprucht. Der dynamische Sperrenpool verwendet nicht mehr als 60 Prozent des Arbeitsspeichers, der Database Engine (Datenbankmodul) zugeordnet ist. Wenn der Sperrenpool 60 Prozent des für eine Instanz von Database Engine (Datenbankmodul) abgerufenen Speichers erreicht hat oder auf dem Computer kein weiterer Arbeitsspeicher zur Verfügung steht, führen weitere Anforderungen für Sperren zu einem Fehler.

Wenn Sperren von SQL Server dynamisch verwendet werden dürfen, entspricht dies der empfohlenen Konfiguration. Sie können jedoch die Option locks festlegen und damit die Möglichkeit von SQL Server zum dynamischen Zuordnen von Sperrenressourcen außer Kraft setzen. Wenn locks auf einen Wert größer als 0 festgelegt ist, kann Database Engine (Datenbankmodul) nur die durch den Wert für locks festgelegte Anzahl von Sperren zuordnen. 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 beansprucht (96 Bytes pro Sperre), müssen Sie beim Erhöhen dieses Wertes unter Umständen auch die Menge an Arbeitsspeicher erhöhen, die für den Server reserviert ist.

Die Option locks hat auch Auswirkungen auf eine Sperrenausweitung. Wenn locks auf 0 festgelegt ist, tritt die Sperrenausweitung auf, sobald der von den aktuellen Sperrstrukturen verwendete Arbeitsspeicher 40 Prozent des Speicherpools von Database Engine (Datenbankmodul) erreicht. Wenn der Wert für locks nicht auf 0 festgelegt wird, tritt die Sperrenausweitung auf, wenn die Anzahl der Sperren 40 Prozent des für locks angegebenen Werts erreicht.

Bei locks handelt es sich um eine erweiterte Option. Wenn Sie die Einstellung mithilfe der gespeicherten Systemprozedur sp_configure ändern, können Sie locks nur ändern, wenn show advanced options auf 1 festgelegt ist. Diese Einstellung wird wirksam, nachdem der Server neu gestartet wurde.