Zeigt alle Sperren in der Datenbank an
sa_locks( [ Verbindung [ , Ersteller [ , Tabellenname [ , Max_Sperren ] ] ] ] )
Verbindung Verwenden Sie diesen INTEGER-Parameter, um eine Verbindungs-ID anzugeben. Die Prozedur gibt nur Sperrendaten über die angegebene Verbindung zurück. Der Standardwert ist 0 (oder NULL). In diesem Fall werden Informationen über alle Verbindungen zurückgegeben.
Ersteller Verwenden Sie diesen CHAR(128)-Parameter, um eine Benutzer-ID anzugeben. Die Prozedur gibt nur Informationen über Tabellen zurück, die dem angegebenen Benutzer gehören. Der Standardwert für den Ersteller-Parameter ist NULL. Wenn dieser Parameter auf NULL gesetzt ist, gibt sa_locks die folgenden Informationen zurück:
Wenn kein Tabellenname-Parameter angegeben wird, werden Informationen über Sperren für alle Tabellen in der Datenbank zurückgegeben.
Wenn der Tabellenname-Parameter angegeben ist, werden Informationen über Sperren für Tabellen mit dem angegebenen Namen zurückgegeben, die vom aktuellen Benutzer erstellt wurden.
Tabellenname Verwenden Sie diesen CHAR(128)-Parameter, um einen Tabellennamen anzugeben. Die Prozedur gibt nur Informationen über die angegebenen Tabellen zurück. Der Standardwert ist NULL. In diesem Fall werden Informationen über alle Tabellen zurückgegeben.
Max_Sperren Verwenden Sie diesen INTEGER-Parameter, um die maximale Anzahl der Sperren anzugeben, für die Daten zurückgegeben werden sollen. Der Standardwert ist 1000. Der Wert -1 gibt an, dass alle Sperrendaten zurückgegeben werden.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
conn_name | VARCHAR(128) | Der Name der aktuellen Verbindung |
conn_id | INTEGER | Die ID-Nummer der Verbindung |
user_id | CHAR(128) | Der Benutzer, der über die Verbindungskennung verbunden ist |
table_type | CHAR(6) | Der Typ der Tabelle. Dieser Typ ist BASE für eine Tabelle, GLBTMP für eine globale temporäre Tabelle oder MVIEW für eine materialisierte Ansicht. |
creator | VARCHAR(128) | Eigentümer der Tabelle |
table_name | VARCHAR(128) | Die Tabelle, die gesperrt ist |
index_id | INTEGER | Die Index-ID oder NULL |
lock_class | CHAR(8) | Die Sperrenklasse. Kann "Schema", "Zeile", "Tabelle" oder "Position" sein. Weitere Hinweise finden Sie unter Objekte, die gesperrt werden können. |
lock_duration | CHAR(11) | Die Dauer der Sperre. Kann "Transaktion", "Position" oder "Verbindung" sein |
lock_type | CHAR(9) | Der Sperrentyp (hängt von der Sperrenklasse ab) |
row_identifier | UNSIGNED BIGINT | Der Bezeichner für die Zeile. Kann ein 8-Byte-Zeilenbezeichner oder NULL sein |
Die Prozedur sa_locks gibt eine Ergebnismenge zurück, die Informationen über alle Sperren in der Datenbank enthält.
Der Wert der lock_type-Spalte hängt von der Sperrenklassifizierung in der lock_class-Spalte ab. Die folgenden Werte können zurückgegeben werden:
Sperrenklasse | Sperrentypen | Kommentare |
---|---|---|
Schema |
Gemeinsam genutzt (gemeinsam genutzte Schemasperre) Exklusiv (exklusive Schemasperre) |
Bei Schemasperren sind die Werte von row_identifier- und Index-ID NULL Weitere Hinweise finden Sie unter Schemasperren. |
Zeile |
Read (Lesesperre) Absicht (Absichtssperre) Schreiben (Schreibsperre) Platzhalter (Platzhaltersperre) |
Zeilen-Lesesperren können kurzfristige Sperren (Scans auf Isolationsstufe 1) oder langfristige Sperren auf höheren Isolationsstufen sein. Die lock_duration-Spalte gibt an, ob die Lesesperre aufgrund der Cursorstabilität (Position) von kurzer Dauer ist, oder von langer Dauer, d.h. bis zum COMMIT/ROLLBACK (Transaktion) aufrechterhalten wird. Zeilensperren werden immer auf einer bestimmten Zeile aufrechterhalten, deren 8-Byte-Zeilenbezeichner ein 64-Bit-Ganzzahlwert in der row_identifier-Spalte ist. Eine Platzhaltersperre ist ein Spezialfall einer Zeilensperre. Platzhaltersperren werden auf Platzhaltereinträgen gehalten, die erstellt werden, wenn sich die Prüfung der referenziellen Integrität verzögert. Weitere Hinweise finden Sie unter Sperren bei Einfügungen. Es gibt keine eindeutige Platzhaltersperre für jeden in der Tabelle erstellten Platzhaltereintrag. Stattdessen entspricht eine Platzhaltersperre der Reihe von Platzhaltereinträgen, die für eine gegebene Tabelle von einer gegebenen Verbindung erstellt werden. Der row_identifier-Wert ist eindeutig für die Tabelle und die Verbindung, die mit der Platzhaltersperre verknüpft sind. Weitere Hinweise finden Sie unter Zeilensperren. |
Tabelle |
Gemeinsam genutzt (gemeinsam genutzte Tabellensperre) Absicht (Absicht, die Tabellensperre zu aktualisieren) Exklusiv (exklusive Tabellensperre) |
Weitere Hinweise finden Sie unter Tabellensperren. |
Position |
Phantom (Phantomsperre) Einfügen (Einfügesperre) |
In den meisten Fällen wird auch eine Positionssperre auf einer bestimmten Zeile gehalten, und der 64-Bit-Zeilenbezeichner dieser Zeile wird in der row_identifier-Spalte in der Ergebnismenge angezeigt. Positionssperren können allerdings auch auf ganzen Scanvorgängen (Index oder sequenziell) aufrecht erhalten werden. In diesem Fall ist die row_identifier-Spalte NULL. Weitere Hinweise finden Sie unter Positionssperren. |
Eine Positionssperre kann mit einem sequenziellen Table Scan oder einem Index Scan verknüpft sein. Die index_id-Spalte zeigt an, ob die Positionssperre mit einem sequenziellen Scan verbunden ist. Wenn die Positionssperre aufgrund eines sequenziellen Scans aufrecht erhalten wird, ist die index_id-Spalte NULL. Wenn die Positionssperre aufgrund eines spezifischen Index Scans aufrecht erhalten wird, wird der Indexbezeichner dieses Indexes in der index_id-Spalte aufgelistet. Der Indexbezeichner entspricht dem Primärschlüssel in der ISYSIDX-Systemtabelle, die unter Verwendung der SYSIDX-Ansicht angezeigt werden kann. Wenn die Positionssperre für Scans auf allen Indizes aufrecht erhalten wird, ist der Index-ID-Wert "-1".
DBA-Berechtigung erforderlich
Keine
Ein Beispiel für diese Systemprozedur und Hinweise zur Erhöhung der Informationsmenge, die Sie zurückgeben können, finden Sie unter Informationen über Sperren abrufen.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |