sys.dm_exec_cursors (języka Transact-SQL)
Zwraca informacje o kursory, które są otwarte w różnych bazach danych.
Składnia
dm_exec_cursors (session_id | 0 )
Argumenty
session_id | 0
Identyfikator sesja.Jeśli session_id jest określone, funkcja zwraca informacje o kursory w określonej sesja.Jeżeli określono wartość 0, funkcja zwraca informacje o wszystkich kursory dla wszystkich sesji.
Zwracana tabela
Nazwa kolumny |
Typ danych |
Opis |
---|---|---|
session_id |
int |
Identyfikator sesja , która przechowuje tego kursor. |
cursor_id |
int |
Identyfikator obiektu kursor . |
name |
nvarchar(256) |
Nazwa kursor zdefiniowane przez użytkownika. |
właściwości |
nvarchar(256) |
Określa właściwości kursor.Do tworzenia wartości w tej kolumnasklejeniu wartości następujących właściwości:
Na przykład może być zwrócona w tej kolumna wartość "TSQL | Dynamiczne | Optymistyczna | Szablon globalny (0) ". |
sql_handle |
varbinary(64) |
Dojście do tekstu partia zadeklarowane kursor. |
statement_start_offset |
int |
Liczba znaków do aktualnie wykonywanego partia lub procedura składowana w którym rozpoczyna się obecnie wykonywanie instrukcja .Mogą być używane razem z sql_handle, statement_end_offsetoraz sys.dm_exec_sql_text funkcja dynamicznego zarządzania pobierania aktualnie instrukcja dla żądania. |
statement_end_offset |
int |
Liczba znaków do aktualnie wykonywanego partia lub procedura składowana w którym kończy się obecnie wykonywanie instrukcja .Mogą być używane razem z sql_handle, statement_start_offsetoraz sys.dm_exec_sql_text funkcja dynamicznego zarządzania pobierania aktualnie instrukcja dla żądania. |
plan_generation_num |
bigint |
Numer sekwencji, używany do rozróżniania między wystąpieniami plany po ponownej kompilacji. |
creation_time |
datetime |
Sygnatura czasowa tego kursor został utworzony. |
is_open |
bit |
Określa, czy kursor jest otwarty. |
is_async_population |
bit |
Określa, czy wątek w tle nadal asynchronicznie wypełnianie zestawu KLUCZY lub STATYCZNEJ kursor. |
is_close_on_commit |
bit |
Określa, czy kursor został uznany za pomocą CURSOR_CLOSE_ON_COMMIT. 1 = Kursor zostanie zamknięty po zakończeniu transakcji. |
fetch_status |
int |
Zwraca ostatni fetch stan kursor.Jest to ostatnia wartość zwracana FETCH_STATUS @@. |
fetch_buffer_size |
int |
Zwraca informacje o rozmiar buforu pobierania. 1 = Kursory języka Transact -SQL .Może to być zestaw wyższą wartość dla API kursory. |
fetch_buffer_start |
int |
FAST_FORWARD i dynamiczne kursory zwraca 0 Jeśli kursor nie jest otwarta lub jeśli jest umieszczony przed pierwszym wierszem.W przeciwnym razie zwraca wartość -1. Dla kursory STATYCZNE i zestawu KLUCZY zwraca 0 Jeśli kursor nie jest otwarty i -1 Jeśli kursor znajduje się poza ostatni wiersz. W przeciwnym razie zwraca numer wiersza, w którym jest umieszczony. |
ansi_position |
int |
Pozycja kursora w buforze pobierania. |
worker_time |
bigint |
Czas spędzony w mikrosekundach przez pracowników wykonywanie tego kursor. |
Odczyty |
bigint |
Liczba odczytów wykonywanych przez kursor. |
zapisuje |
bigint |
Liczba zapisów wykonywane przez kursor. |
dormant_duration |
bigint |
Milisekund od czasu ostatniej kwerendy (otwarcie lub fetch) została uruchomiona na tym kursor . |
Uprawnienia
Wymaga uprawnienia Wyświetlanie stanu serwera na serwerze.
Uwagi
W poniższej tabela zawiera informacje odeklaracja kursorinterfejs oraz możliwe wartości właściwości kolumna.
Właściwość |
Opis |
---|---|
API |
Kursor został uznany za pomocą jednego z interfejsów API (ODBC, OLEDB) dostępu do danych. |
TSQL |
Kursor został uznany za pomocą składni języka Transact -SQL DECLARE CURSOR. |
Poniższa tabela zawiera informacje dotyczące typu kursor oraz możliwe wartości właściwości kolumna.
Typ |
Opis |
---|---|
Zestaw kluczy |
Kursor został zadeklarowany jako zestaw kluczy. |
Dynamiczne |
Kursor został zadeklarowany jako dynamiczny. |
Migawki |
Kursor został zadeklarowany jako migawka lub statycznej. |
Fast_Forward |
Kursor został zadeklarowany jako szybko przewiń do przodu. |
W poniższej tabela zawiera informacje o kursor współbieżność oraz możliwe wartości właściwości kolumna.
Współbieżności |
Opis |
---|---|
Tylko do odczytu |
Kursor został zadeklarowany jako tylko do odczytu. |
Blokada przewijania |
Kursor używa blokada przewijania. |
Przypadek optymistyczny |
Kursor wykorzystuje formant optymistycznej współbieżność . |
W poniższej tabela zawiera informacje o kursor zakres oraz możliwe wartości właściwości kolumna.
Zakres |
Opis |
---|---|
Lokalne |
Określa, że zakres kursor lokalnego partia, procedura składowanalub wyzwalacz, w którym utworzono kursor . |
Globalne |
Określa, że zakres kursor globalnego połączenia. |
Przykłady
A.Wykrywanie stare kursory
W tym przykładzie zwraca informacje o kursory, które zostały otwarte na serwerze dłuższy niż określony czas 36 godzin.
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