Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Systemobjekte » Systemprozeduren » Alphabetische Liste der Systemprozeduren

 

sa_locks-Systemprozedur

Zeigt alle Sperren in der Datenbank an

Syntax
sa_locks( 
  [ Verbindung
  [ , Ersteller
  [ , Tabellenname
  [ , Max_Sperren ] ] ] ]
)
Argumente
  • 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.

Ergebnismenge
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
Bemerkungen

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".

Berechtigungen

DBA-Berechtigung erforderlich

Nebenwirkungen

Keine

Siehe auch
Beispiel

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.