sys.dm_exec_cursors
Aktualisiert: 12. Dezember 2006
Gibt Informationen zu den Cursorn zurück, die in verschiedenen Datenbanken geöffnet sind.
Syntax
dm_exec_cursors (session_id | 0 )
Argumente
session_id | 0
ID der Sitzung. Wenn session_id angegeben wird, gibt diese Funktion Informationen zu Cursorn in der angegebenen Sitzung zurück.Wenn 0 angegeben wird, gibt diese Funktion Informationen zu allen Cursorn für alle Sitzungen zurück.
Zurückgegebene Tabelle
Spaltenname | Datentyp | Beschreibung |
---|---|---|
session_id |
int |
ID der Sitzung, die diesen Cursor enthält. |
cursor_id |
int |
ID des Cursorobjekts. |
name |
nvarchar(256) |
Name des Cursors gemäß der Definition durch den Benutzer. |
properties |
nvarchar(256) |
Gibt die Eigenschaften des Cursors an. Die Werte der folgenden Eigenschaften werden zu einem Wert dieser Spalte verkettet:
Beispielsweise kann der in dieser Spalte zurückgegebene Wert "TSQL | Dynamic | Optimistic | Global (0)" lauten. |
sql_handle |
varbinary(64) |
Handle zum Text des Batches, durch den der Cursor deklariert wurde. |
statement_start_offset |
int |
Anzahl von Zeichen im derzeit ausgeführten Batch oder in der derzeit ausgeführten gespeicherten Prozedur, an der die derzeit ausgeführte Anweisung beginnt. Kann zusammen mit sql_handle, statement_end_offset und der dynamischen Verwaltungsfunktion sys.dm_exec_sql_text zum Abrufen der zurzeit ausgeführten Anweisung für die Anforderung verwendet werden. |
statement_end_offset |
int |
Anzahl von Zeichen im derzeit ausgeführten Batch oder in der derzeit ausgeführten gespeicherten Prozedur, an der die derzeit ausgeführte Anweisung endet. Kann zusammen mit sql_handle, statement_start_offset und der dynamischen Verwaltungsfunktion sys.dm_exec_sql_text zum Abrufen der zurzeit ausgeführten Anweisung für die Anforderung verwendet werden. |
plan_generation_num |
bigint |
Eine Sequenznummer, anhand der nach einer Neukompilierung zwischen einzelnen Instanzen von Plänen unterschieden werden kann. |
creation_time |
datetime |
Der Timestamp, wann dieser Cursor erstellt wurde. |
is_open |
bit |
Gibt an, ob der Cursor geöffnet ist. |
is_async_population |
bit |
Gibt an, ob der Hintergrundthread weiterhin einen KEYSET- oder STATIC-Cursor asynchron auffüllt. |
is_close_on_commit |
bit |
Gibt an, ob der Cursor mithilfe von CURSOR_CLOSE_ON_COMMIT deklariert wurde. 1 = Cursor wird geschlossen, wenn die Transaktion endet. |
fetch_status |
int |
Gibt den letzten Abrufstatus des Cursors zurück. Dies ist der letzte zurückgegebene @@FETCH_STATUS-Wert. |
fetch_buffer_size |
int |
Gibt Informationen zur Größe des Fetchpuffers zurück. 1 = Transact-SQL-Cursor. Für API-Cursor kann ein höherer Wert festgelegt werden. |
fetch_buffer_start |
int |
Für FAST_FORWARD- und DYNAMIC-Cursor wird 0 zurückgegeben, falls der Cursor nicht geöffnet ist oder falls er vor der ersten Zeile positioniert ist. Andernfalls wird -1 zurückgegeben. Für STATIC- und KEYSET-Cursor wird 0 zurückgegeben, falls der Cursor nicht geöffnet ist, und -1, falls der Cursor nach der letzten Zeile positioniert ist. Andernfalls wird die Zeilennummer zurückgegeben, in der der Cursor positioniert ist. |
ansi_position |
int |
Cursorposition innerhalb des Fetchpuffers. |
worker_time |
bigint |
Der Zeitaufwand in Mikrosekunden zum Ausführen dieses Cursors durch den Arbeitsthread. |
reads |
bigint |
Anzahl von Lesevorgängen, die der Cursor ausgeführt hat. |
writes |
bigint |
Anzahl von Schreibvorgängen, die der Cursor ausgeführt hat. |
dormant_duration |
bigint |
Millisekunden seit dem Start der letzten Abfrage (Öffnen oder Abrufen) für diesen Cursor. |
Hinweise
Die folgende Tabelle stellt Informationen zur Cursordeklarationsschnittstelle bereit und enthält die möglichen Werte für die Eigenschaftenspalte.
Eigenschaft | Beschreibung |
---|---|
API |
Cursor wurde mithilfe einer der Datenzugriffs-APIs (ODBC, OLE DB) deklariert. |
TSQL |
Cursor wurde mithilfe der DECLARE CURSOR-Syntax von Transact-SQL deklariert. |
Die folgende Tabelle stellt Informationen zum Cursortyp bereit und enthält die möglichen Werte für die Eigenschaftenspalte.
Typ | Beschreibung |
---|---|
Keyset |
Cursor wurde als Keyset deklariert. |
Dynamic |
Cursor wurde als dynamisch deklariert. |
Snapshot |
Cursor wurde als Snapshot oder statisch deklariert. |
Fast_Forward |
Cursor wurde als Vorwärtscursor deklariert. |
Die folgende Tabelle stellt Informationen zur Cursorparallelität bereit und enthält die möglichen Werte für die Eigenschaftenspalte.
Parallelität | Beschreibung |
---|---|
Read Only |
Cursor wurde als schreibgeschützt deklariert. |
Scroll Locks |
Cursor verwendet Scrollsperren. |
Optimistic |
Cursor verwendet die Steuerung durch vollständige Parallelität. |
Die folgende Tabelle stellt Informationen zum Cursorbereich bereit und enthält die möglichen Werte für die Eigenschaftenspalte.
Bereich | Beschreibung |
---|---|
Lokal |
Gibt an, dass der Gültigkeitsbereich des Cursors lokal zu dem Batch, der gespeicherten Prozedur oder dem Trigger ist, in dem bzw. in der er erstellt wurde. |
Global |
Gibt an, dass der Gültigkeitsbereich des Cursors global zur Verbindung ist. |
Berechtigungen
Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.
Beispiele
A. Erkennen alter Cursor
Dieses Beispiel gibt Informationen zu Cursorn zurück, die auf dem Server länger als über den angegebenen Zeitraum von 36 Stunden hinweg geöffnet waren.
SELECT creation_time, cursor_id, name, c.session_id, login_name
FROM sys.dm_exec_cursors(0) AS c
JOIN sys.dm_exec_sessions AS s ON c.session_id = s.session_id
WHERE DATEDIFF(hh, c.creation_time, GETDATE()) > 36;
GO
Siehe auch
Verweis
Dynamische Verwaltungssichten und -funktionen
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
12. Dezember 2006 |
|