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:
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