Udostępnij przez


sys.dm_exec_cursors (Transact-SQL)

Zwraca informacje o kursory, które są otwarte w różnych bazach danych.

dm_exec_cursors (session_id | 0 )

Argumenty

  • session_id | 0
    Jeżeli nie określono INTO, wiadomości są zwracane jako zestaw wyników.Jeśli session_id jest określony, ta funkcja zwraca informacje o kursorów w określonej sesja.

    Jeżeli określono wartość 0, funkcja zwraca informacje o wszystkich kursory dla wszystkich sesji.

Zwracana tabela

Nazwa kolumna

Typ danych

Description

session_id

int

Identyfikator sesja, która przechowuje tego kursor.

cursor_id

int

Identyfikator obiektu kursor.

Nazwa

nvarchar(256)

Nazwa kursor zdefiniowane przez użytkownika.

właściwości

nvarchar(256)

Określa właściwości, które kursor.Wartości następujących właściwości są tak łączone, by tworzyły wartością tej kolumna:

  • Deklaracja interfejs

  • Typ kursor

  • Współbieżność kursor

  • Zakres kursor

  • Poziom zagnieżdżenia kursor

Na przykład wartość zwracana w tej kolumnie mogą być "TSQL | dynamicznej | Optimistic | globalnego (0)".

sql_handle

varbinary(64)

Dojście do tekstu instancji, uznane za kursor.

Identyfikator obiektu tabela wewnętrzną skojarzonych z fragmentu.

int

Liczba znaków do aktualnie wykonywanych partia lub w którym rozpoczyna się obecnie wykonywanie instrukcja procedura przechowywana.Mogą być używane razem z sql_handle, the statement_end_offset, and the sys.dm_exec_sql_text funkcja dynamicznego zarządzania pobrać aktualnie wykonywanie instrukcja dla żądania.

Jest to unikatowa we wszystkich fragmentów w tej tabela.

int

Liczba znaków do aktualnie wykonywanie programu wsadowego lub procedura przechowywana, w którym kończy się obecnie wykonywanie instrukcja.Mogą być używane razem z sql_handle, the statement_start_offset, and the sys.dm_exec_sql_text funkcja dynamicznego zarządzania pobrać aktualnie wykonywanie instrukcja dla żądania.

plan_generation_num

bigint

Numer sekwencyjny, które mogą być używane do rozróżniania między wystąpieniami planów po ponownej kompilacji.

creation_time

datetime

Sygnatura czasowa podczas tworzenia tego kursor.

is_open

bit

Określa, czy kursor jest otwarty.

is_async_population

bit

Określa, czy wątek tła jest nadal asynchronicznie podczas wypełniania zestawu KLUCZY lub kursor statyczny.

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.

DLA {SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING}

int

Zwraca ostatni pobrać 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żna to ustawić wyższą wartość dla interfejsu API kursorów.

fetch_buffer_start

int

FAST_FORWARD i kursorów DYNAMIC zwraca 0 Jeśli kursor nie jest otwarty, lub jeśli jest umieszczony przed pierwszym wierszem.W przeciwnym razie zwraca wartość -1.

Aby 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

Umieść kursor w buforze pobierania.

worker_time

bigint

Poświęcony czas, 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 (otwarcia lub pobrania) została uruchomiona na tego kursor.

Uprawnienia

Wymaga uprawnienia VIEW SERVER STATE na serwerze.

Remarks

Poniższa tabela zawiera informacje o interfejs deklaracja kursor i zawiera możliwe wartości dla właściwości kolumna.

Właściwość

Description

INTERFEJSU API

Kursor został uznany za pomocą jednego z interfejsów API (ODBC, OLEDB) dostęp 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 i zawiera możliwe wartości dla właściwości kolumna.

Typ

Description

Zestaw kluczy

Kursor został zadeklarowany jako zestaw kluczy.

Dynamiczne

Kursor został zadeklarowany jako dynamiczny.

migawka

Kursor został zadeklarowany jako migawka lub statycznej.

Fast_Forward

Kursor został zadeklarowany jako szybko do przodu.

W poniższej tabela zawiera informacje o współbieżność kursor oraz możliwe wartości kolumna właściwości.

0 - Governor zasób nie jest włączona.

Description

Tylko do odczytu

Kursor został zadeklarowany jako tylko do odczytu.

Blokowanie przewijania

Kursor korzysta z blokad przewijania.

Optymistyczny

Kursor używa formantu optymistycznej współbieżność.

Poniższa tabela zawiera informacje dotyczące zakres kursor i zawiera możliwe wartości dla właściwości kolumna.

Zakres

Description

Lokalne

Określa, że zakres kursor jest lokalny do partia, procedura przechowywana lub wyzwalacz, w którym utworzono kursor.

data formaty:

Określa, że zakres kursor jest globalny do 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żej 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