DB2 10.5 for Linux, UNIX and Windows

maxlocks - Maximale Anzahl von Sperren vor Eskalation (Konfigurationsparameter)

Mit diesem Parameter wird definiert, wie viel Prozent der Sperrenliste eine Anwendung belegen muss, damit der Datenbankmanager eine Sperreneskalation ausführt.

Konfigurationstyp
Datenbank
Parametertyp
  • Konfigurierbar
  • Nach Member in einer DB2 pureScale-Umgebung konfigurierbar
Standardwert [Bereich]
Automatic [1 - 100 ]
Anmerkung: Der Standardwert unterliegt nach der ursprünglichen Datenbankerstellung Änderungen durch den DB2-Konfigurationsadvisor.
Maßeinheit
Prozent

Eine Sperreneskalation ist der Prozess, durch den jeweils mehrere Zeilensperren für eine Tabelle durch eine Tabellensperre ersetzt werden, um die Anzahl der Sperren in der Liste zu verringern. Wenn die Anzahl der Sperren, die von einer Anwendung aktiviert wurden, diesen Prozentwert der Gesamtgröße der Sperrenliste erreicht, wird für die Sperren dieser Anwendung eine Sperreneskalation ausgeführt. Eine Sperreneskalation wird auch dann ausgeführt, wenn in der Sperrenliste kein weiterer Platz mehr verfügbar ist.

Der Datenbankmanager bestimmt die zu eskalierenden Sperren, indem er die Sperrenliste nach der Anwendung durchsucht und die Tabelle mit den meisten gesperrten Zeilen ermittelt. Wenn nach der Ersetzung dieser Sperren durch eine einzige Tabellensperre der Wert für maxlocks nicht mehr überschritten wird, wird die Sperreneskalation beendet. Andernfalls wird die Eskalation fortgesetzt, bis der von dieser Anwendung belegte Prozentsatz der Sperrenliste unter den Wert von maxlocks gesunken ist. Das Produkt aus dem Wert des Parameters maxlocks und dem Wert des Parameters maxappls darf nicht kleiner als 100 sein.

Der Wert AUTOMATIC für diesen Parameter aktiviert ihn für die automatische Leistungsoptimierung. Dadurch ist die Speicheroptimierungsfunktion in der Lage, die durch diesen Parameter gesteuerte Größe des Hauptspeicherbereichs an geänderte Auslastungsanforderungen je nach Bedarf dynamisch anzupassen. Da die Speicheroptimierungsfunktion Speicherressourcen auf verschiedene Speicherverbraucher verteilt, müssen mindestens zwei Speicherverbraucher für die automatische Optimierung aktiviert sein, damit eine automatische Optimierung erfolgen kann.

Obwohl der Wert des Parameters locklist zusammen mit dem Parameter maxlocks optimiert werden kann, bewirkt die Inaktivierung der automatischen Optimierung des Parameters locklist nicht automatisch die Inaktivierung der automatischen Optimierung des Parameters maxlocks. Die Aktivierung der automatischen Optimierung für den Parameter locklist führt automatisch zu einer Aktivierung der automatischen Optimierung des Parameters maxlocks.

Die automatische Optimierung dieses Konfigurationsparameters findet nur statt, wenn der Speicher mit automatischer Leistungsoptimierung für die Datenbank aktiviert ist (der Konfigurationsparameter self_tuning_mem muss auf ON gesetzt sein).

Auf allen Plattformen erfordert jede Sperre 128 oder 256 Byte der Sperrenliste, und zwar in Abhängigkeit davon, ob für das Objekt andere Sperren aktiv sind:
  • 256 Byte sind erforderlich, um eine Sperre für ein Objekt zu aktivieren, für das keine anderen Sperren aktiv sind.
  • 128 Byte sind erforderlich, um eine Sperre für ein Objekt einzutragen, für das bereits eine vorhandene Sperre aktiv ist.
Empfehlung: Mit der folgenden Formel können Sie maxlocks so einstellen, dass eine Anwendung das Zweifache der durchschnittlichen Anzahl von Sperren aktivieren kann:
   maxlocks = 2 * 100 / maxappls
Dabei wird 2 verwendet, um das Zweifache der durchschnittlichen Anzahl zu erzielen, und 100 ist der höchste zulässige Prozentwert. Wenn Sie nur wenige Anwendungen haben, die gleichzeitig aktiv sind, können Sie alternativ zu der ersten Formel auch die folgende Formel verwenden:
   maxlocks = 2 * 100 / (durchschnittliche Anzahl der gleichzeitig aktiven
Anwendungen)
Bei der Festlegung von maxlocks können Sie eine gleichzeitige Verwendung von locklist (Größe der Sperrenliste) in Erwägung ziehen. Die maximale Anzahl der Sperren, die eine Anwendung aktivieren kann, bevor eine Sperreneskalation erfolgt, wird wie folgt berechnet:
  • maxlocks * locklist * 4096 /(100 * 128)

Dabei ist 4096 die Anzahl der Byte auf einer Seite, 100 ist der höchste zulässige Prozentsatz für maxlocks und 128 ist die Anzahl der Byte pro Sperre. Wenn Sie wissen, dass eine Ihrer Anwendungen 1000 Sperren benötigt, und Sie keine Sperreneskalation wünschen, sollten Sie die Werte für maxlocks und locklist in dieser Formel so wählen, dass das Ergebnis größer als 1000 ist. (Wenn Sie für maxlocks 10 und für locklist 100 verwenden, ist das Ergebnis der Formel höher als die erforderlichen 1000 Sperren.)

Wenn Sie für maxlocks einen zu niedrigen Wert wählen, tritt eine Sperreneskalation auf, obwohl für andere gleichzeitig ausgeführte Anwendungen noch genügend Speicher für Sperren verfügbar ist. Wenn ein zu hoher Wert für maxlocks gewählt wird, belegen einige wenige Anwendungen u. U. fast den gesamten Speicher für Sperren, während andere Anwendungen eine Sperreneskalation durchführen müssen. Die Notwendigkeit einer Sperreneskalation geht in diesem Fall zulasten des gleichzeitigen Zugriffs.

Mithilfe des Datenbanksystemmonitors können Sie diesen Konfigurationsparameter verfolgen und seinen Wert optimieren.