sys.dm_exec_cursors (Transact-SQL)

Gäller för:SQL Server

Returnerar information om markörerna som är öppna i olika databaser.

Syntax

  
dm_exec_cursors (session_id | 0 )  

Arguments

session_id | 0
ID för sessionen. Om session_id anges returnerar denna funktion information om markörer i den angivna sessionen.

Om 0 anges returnerar funktionen information om alla markörer för alla sessioner.

Tabell returnerad

Kolumnnamn Datatyp Description
session_id int ID för sessionen som håller denna markör.
cursor_id int ID för markörobjektet.
name nvarchar(256) Namnet på markören som definieras av användaren.
egenskaper nvarchar(256) Specificerar markörens egenskaper. Värdena för följande egenskaper är sammanfogade för att bilda värdet på denna kolumn:
Deklarationsgränssnitt
Markörtyp
Kursorens samtidighet
Markörräckvidd
Nivå för markörnästning

Till exempel kan värdet som returneras i denna kolumn vara "TSQL | Dynamisk | Optimistisk | Global (0)".
sql_handle varbinary(64) Hantera texten i batchen som deklarerade markören.
statement_start_offset int Antal tecken i den för närvarande körande batchen eller den lagrade proceduren där den för närvarande exekverande satsen startar. Kan användas tillsammans med funktionen sql_handle,statement_end_offset och sys.dm_exec_sql_text dynamisk hantering för att hämta den pågående satsen för förfrågan.
statement_end_offset int Antal tecken i den för närvarande körande batchen eller den lagrade proceduren där den pågående satsen slutar. Kan användas tillsammans med sql_handle, statement_start_offset och sys.dm_exec_sql_text dynamisk hanteringsfunktion för att hämta den pågående satsen för begäran.
plan_generation_num bigint Ett sekvensnummer som kan användas för att skilja mellan instanser av planer efter omkompilering.
creation_time datetime Tidsstämpel när denna markör skapades.
is_open bit Specificerar om markören är öppen.
is_async_population bit Specificerar om bakgrundstråden fortfarande asynkront fyller en KEYSET eller STATISK markör.
is_close_on_commit bit Specificerar om markören deklarerades genom att använda CURSOR_CLOSE_ON_COMMIT.

1 = Markören stängs när transaktionen avslutas.
fetch_status int Returnerar status för markörens sista hämtning. Detta är det sista returnerade @@FETCH_STATUS värde.
fetch_buffer_size int Returnerar information om storleken på fetch-bufferten.

1 = Transact-SQL markörer. Detta kan ställas in till ett högre värde för API-kursorer.
fetch_buffer_start int För FAST_FORWARD och DYNAMISKA markörer returnerar den 0 om markören inte är öppen eller om den är placerad före första raden. Annars ger den -1.

För STATISKA och KEYSET-markörer returnerar den 0 om markören inte är öppen, och -1 om markören är placerad bortom sista raden.

Annars returnerar den radnumret där den är placerad.
ansi_position int Cursorpositionen inom fetch-bufferten.
worker_time bigint Tid som arbetarna spenderar i mikrosekunder på att utföra denna markör.
Läser bigint Antal läsningar utförda av markören.
Skriver bigint Antal skrivningar utförda av markören.
dormant_duration bigint Millisekunder sedan den senaste frågan (öppen eller hämta) på denna markör startades.

Permissions

Kräver VIEW SERVERTILLSTÅND på servern.

Behörigheter för SQL Server 2022 och senare

Kräver VIEW SERVER PERFORMANCE STATE behörighet på servern.

Remarks

Följande tabell ger information om markördeklarationsgränssnittet och inkluderar möjliga värden för egenskapskolumnen.

Property Description
API (gränssnitt för programmering av applikationer) Cursor deklarerades genom att använda ett av dataåtkomst-API:erna (ODBC, OLEDB).
TSQL Cursor deklarerades genom att använda syntaxen Transact-SQL DECLARE CURSOR.

Följande tabell ger information om markörtypen och inkluderar möjliga värden för egenskapskolumnen.

Type Description
Nyckeluppsättning Cursor deklarerades som Keyset.
Dynamisk Cursor förklarades som Dynamisk.
Ögonblicksbild Cursor deklarerades som Snapshot eller Statisk.
Fast_Forward Cursor deklarerades som Fast Forward.

Följande tabell ger information om markörens samtidighet och inkluderar möjliga värden för egenskapskolumnen.

Concurrency Description
Skrivskyddad Cursor deklarerades som skrivskyddad.
Scrolllås Cursor använder scroll-lås.
Optimistisk Cursor använder optimistisk samtidighetskontroll.

Följande tabell ger information om markörens omfattning och inkluderar möjliga värden för egenskapskolumnen.

Scope Description
Local Specificerar att markörens omfattning är lokal för batchen, den lagrade procedur eller triggern där markören skapades.
Global Specificerar att markörens omfattning är global för anslutningen.

Examples

A. Upptäckt av gamla markörer

Detta exempel ger information om markörer som har varit öppna på servern längre än den angivna tiden på 36 timmar.

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  

Se även

Dynamiska hanteringsvyer och funktioner (Transact-SQL)
Körningsrelaterade vyer och funktioner för dynamisk hantering (Transact-SQL)
sys.dm_exec_sessions (Transact-SQL)