Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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)