sys.dm_exec_cursors (Transact-SQL)

A következőkre vonatkozik:SQL Server

Információkat ad vissza a különböző adatbázisokban nyitott kurzorokról.

Syntax

  
dm_exec_cursors (session_id | 0 )  

Arguments

session_id | 0
A munkamenet azonosítója. Ha session_id meg van jelölve, ez a függvény visszaad információt a kurzorokról a megadott ülésen.

Ha 0-t jelölünk, a függvény minden alkalommal minden kurzorról ad vissza információt.

Visszajuttatott tábla

Oszlop neve Adattípus Leírás
session_id int Az ülés azonosítója, amely ezt a kurzort tartja.
cursor_id int A kurzorobjektum azonosítója.
név nvarchar(256) A kurzor neve a felhasználó által meghatározott meghatározás szerint.
tulajdonságok nvarchar(256) Megadja a kurzor tulajdonságait. Az alábbi tulajdonságok értékei összefonódnak, hogy ennek az oszlopnak az értékét alják:
Nyilatkozati interfész
Kurzor típus
Cursor-egyidejű
Kurzor távcső
Kurzor fészkelési szint

Például az oszlopban visszaadott érték lehet "TSQL | Dinamikus | Optimista | Global (0)".
sql_handle varbinary(64) A kurzort hirdető tétel szövegét fogja át.
statement_start_offset int A jelenleg futó tételben vagy tárolt eljárásban szereplő karakterek száma, ahol a jelenleg végrehajtó utasítás indul. A sql_handle, a statement_end_offsetés a sys.dm_exec_sql_text dinamikus felügyeleti függvénnyel együtt használható a kérés aktuális végrehajtási utasításának lekéréséhez.
statement_end_offset int A jelenleg futó batch vagy tárolt eljárás karaktereinek száma, ahol a jelenleg futtatható utasítás véget ér. A sql_handle, a statement_start_offsetés a sys.dm_exec_sql_text dinamikus felügyeleti függvénnyel együtt használható a kérés aktuális végrehajtási utasításának lekéréséhez.
plan_generation_num bigint Egy sorozatszám, amely a tervek újrafordítása után megkülönböztethető.
creation_time datetime Időbélyeg, mikor készült ez a kurzor.
is_open bit Megadja, hogy a kurzor nyitva van-e.
is_async_population bit Megadja, hogy a háttérszál továbbra is aszinkron módon tölt fel egy KEYSET vagy STATIC kurzort.
is_close_on_commit bit Megadja, hogy a kurzor a használatával CURSOR_CLOSE_ON_COMMITjelent meg, hogy a kurzor a használatával jelent meg.

1 = A kurzor zárva lesz, amikor a tranzakció véget ér.
fetch_status int Visszaadja a kurzor utolsó behozási állapotát. Ez az utolsó visszaadott @@FETCH_STATUS érték.
fetch_buffer_size int Információt ad a fetch buffer méretéről.

1 = Transact-SQL kurzor. Ez magasabb értékre állítható, mint API kurzorok.
fetch_buffer_start int FAST_FORWARD és DYNAMIC kurzorok esetén 0-t ad, ha a kurzor nincs nyitva, vagy az első sor előtt helyezkedik el. Ellenkező esetben -1-et ad.

STATIC és KEYSET kurzorok esetén 0-ot ad vissza, ha a kurzor nincs nyitva, és -1, ha a kurzor az utolsó sor mögött helyezkedik el.

Ellenkező esetben visszaadja azt a sorszámot, amelyben elhelyezkedett.
ansi_position int Kurzor pozíciója a fetch bufferben.
worker_time bigint Mikroszekundumustan eltöltött időt a kurzor végrehajtó munkások számára.
Olvas bigint A kurzor által végzett olvasások száma.
Írja bigint A kurzor által végzett írások száma.
dormant_duration bigint Milliszekunduumok óta elindultak az utolsó lekérdezés (nyitás vagy behozás) ezen a kurzoron.

Permissions

Szerver STATE engedélyt igényel VIEW a szerveren.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

SERVER PERFORMANCE STATE engedélyt igényel VIEW a szerveren.

Megjegyzések

Az alábbi táblázat információkat nyújt a kurzordeklarációs felületről, és tartalmazza a tulajdonságok oszlop lehetséges értékeit.

Property Leírás
API A kurzort az egyik adathozzáférési API (ODBC, OLEDB) használatával deklarálták.
TSQL A kurzort a Transact-SQL DECLARE CURSOR szintaxisával állították ki.

Az alábbi táblázat információkat nyújt a kurzortípusról, és tartalmazza a tulajdonságok oszlopának lehetséges értékeit.

Típus Leírás
Billentyűkészlet Cursort Keysetnek nevezték.
Dynamic Cursort dinamikusnak minősítették.
Snapshot A kurzort Snapshot vagy Static-nak jelölték.
Fast_Forward A Cursor Gyorsulás (Gyorsulás) lett beállítva.

Az alábbi táblázat a kurzor egyidejű egységéről információt nyújt, és tartalmazza a tulajdonságok oszlopának lehetséges értékeit.

Concurrency Leírás
Csak olvasható A Cursor csak olvasásra volt beállítva.
Tekercszárak A Cursor görgető zárokat használ.
Optimista A kurzor optimista egyidejű vezérlést alkalmaz.

Az alábbi táblázat információkat nyújt a kurzor hatóköréről, és tartalmazza a tulajdonságok oszlop lehetséges értékeit.

Scope Leírás
Local Megadja, hogy a kurzor hatóköre helyi legyen a köteghez, a tárolt eljáráshoz vagy az eseményindítóhoz, amelyben a kurzor létrejött.
Globális Megadja, hogy a kurzor hatóköre globális legyen a kapcsolathoz.

Examples

A. Régi kurzorok felismerése

Ez a példa olyan kurzorokról ad vissza, amelyek a szerveren a megadott 36 órás időnél tovább voltak nyitva.

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  

Lásd még

Dinamikus felügyeleti nézetek és függvények (Transact-SQL)
végrehajtással kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)
sys.dm_exec_sessions (Transact-SQL)