sys.dm_exec_cursors (Transact-SQL)
S'applique à : SQL Server
Retourne des informations sur les curseurs ouverts dans diverses bases de données.
dm_exec_cursors (session_id | 0 )
session_id | 0
ID de la session. Si session_id est spécifié, cette fonction retourne des informations sur les curseurs dans la session spécifiée.
Si 0 est spécifié, la fonction retourne des informations sur tous les curseurs dans toutes les sessions.
Nom de la colonne | Type de données | Description |
---|---|---|
session_id | int | ID de la session propriétaire de ce curseur. |
cursor_id | int | ID de l'objet curseur. |
nom | nvarchar (256) | Nom du curseur, défini par l'utilisateur. |
properties | nvarchar (256) | Spécifie les propriétés du curseur. Les valeurs des propriétés suivantes sont concaténées pour former la valeur de cette colonne : Interface déclaration Type de curseur Accès simultané au curseur Étendue du curseur Niveau d'imbrication du curseur Par exemple, la valeur retournée dans cette colonne peut être « TSQL | » Dynamique | Optimiste | Global (0)". |
sql_handle | varbinary(64) | Descripteur du texte du traitement qui a déclaré le curseur. |
statement_start_offset | int | Nombre de caractères dans le traitement ou la procédure stockée en cours d'exécution où les instructions en cours d'exécution commencent. Peut être utilisé avec l’sql_handle, le statement_end_offset et la fonction de gestion dynamique sys.dm_exec_sql_text pour récupérer l’instruction en cours d’exécution pour la requête. |
statement_end_offset | int | Nombre de caractères dans le traitement ou la procédure stockée en cours d'exécution où les instructions en cours d'exécution se terminent. Peut être utilisé avec l’sql_handle, le statement_start_offset et la fonction de gestion dynamique sys.dm_exec_sql_text pour récupérer l’instruction en cours d’exécution pour la requête. |
plan_generation_num | bigint | Numéro de séquence permettant de distinguer les instances de plans après une recompilation. |
creation_time | datetime | Heure de création du curseur. |
is_open | bit | Indique si le curseur est ouvert. |
is_async_population | bit | Spécifie si le thread d'arrière-plan remplit toujours de manière asynchrone un curseur KEYSET ou STATIC. |
is_close_on_commit | bit | Spécifie si le curseur a été déclaré à l'aide de CURSOR_CLOSE_ON_COMMIT. 1 = Le curseur est fermé à la fin de la transaction. |
fetch_status | int | Retourne le dernier état d'extraction du curseur. Il s’agit de la dernière valeur de @@FETCH_STATUS retournée. |
fetch_buffer_size | int | Retourne des informations sur la taille du tampon d'extraction. 1 = Curseurs Transact-SQL. Il est possible de définir une valeur supérieure pour les curseurs des API. |
fetch_buffer_start | int | Pour les curseurs FAST_FORWARD et DYNAMIC, retourne 0 si le curseur n'est pas ouvert ou s'il est positionné devant la première ligne. Sinon, retourne -1. Pour les curseurs STATIC et KEYSET, retourne 0 si le curseur n'est pas ouvert et -1 si le curseur est positionné au-delà de la dernière ligne. Sinon, retourne le numéro de la ligne où il est positionné. |
ansi_position | int | Position du curseur dans le tampon d'extraction. |
worker_time | bigint | Temps, en microsecondes, passés par les travaux qui exécutent ce curseur. |
Lit | bigint | Nombre de lectures effectuées par le curseur. |
Écrit | bigint | Nombre d'écritures effectuées par le curseur. |
dormant_duration | bigint | Millisecondes écoulées depuis le début de la dernière requête (ouverture ou extraction) sur ce curseur. |
requièrent l'autorisation VIEW SERVER STATE sur le serveur.
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Le tableau ci-dessous fournit des informations sur l'interface de déclaration du curseur et inclut les valeurs possibles pour la colonne des propriétés.
Propriété | Description |
---|---|
API | Le curseur a été déclaré en utilisant une des API d'accès aux données (ODBC, OLEDB). |
TSQL | Le curseur a été déclaré à l'aide de la syntaxe Transact-SQL DECLARE CURSOR. |
Le tableau ci-dessous fournit des informations sur le type du curseur et inclut les valeurs possibles pour la colonne des propriétés.
Type | Description |
---|---|
Keyset | Le curseur est déclaré comme Keyset. |
Dynamique | Le curseur est déclaré comme dynamique. |
Instantané | Le curseur est déclaré comme instantané ou statique. |
Fast_Forward | Le curseur est déclaré comme curseur avant. |
Le tableau ci-dessous fournit des informations sur l'accès concurrentiel au curseur et inclut les valeurs possibles pour la colonne des propriétés.
Concurrence | Description |
---|---|
Lecture seule | Le curseur est déclaré en lecture seule |
Scroll Locks | Le curseur utilise des défilements. |
Optimistic | Le curseur utilise l'accès concurrentiel optimiste. |
Le tableau ci-dessous fournit des informations sur l'étendue du curseur et inclut les valeurs possibles pour la colonne des propriétés.
Étendue | Description |
---|---|
Local | Spécifie que l'étendue du curseur est locale pour le traitement d'instructions, la procédure stockée ou le déclencheur dans lequel il a été créé. |
Global | Spécifie que l'étendue du curseur est globale pour la connexion. |
Cet exemple retourne des informations sur les curseurs ouverts sur le serveur pendant une durée supérieure aux 36 heures spécifiées.
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
Fonctions et vues de gestion dynamique (Transact-SQL)
Fonctions et vues de gestion dynamique relatives à l'exécution (Transact-SQL)
sys.dm_exec_sessions (Transact-SQL)