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:

  • Deklaracja interfejsu

  • Typ kursora

  • Kursor współbieżności

  • Kursor zakres

  • Kursor zagnieżdżenia poziom

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