Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server
Devuelve información acerca de los cursores abiertos en diversas bases de datos.
dm_exec_cursors (session_id | 0 )
session_id | 0
Id. de la sesión. Si se especifica session_id , esta función devuelve información sobre los cursores de la sesión especificada.
Si se especifica 0, esta función devuelve información acerca de todos los cursores de todas las sesiones.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
session_id | int | Id. de la sesión que alberga este cursor. |
cursor_id | int | Id. del objeto de cursor. |
name | nvarchar(256) | Nombre del cursor tal como lo ha definido el usuario. |
properties | nvarchar(256) | Especifica las propiedades del cursor. Los valores de las propiedades siguientes se concatenan para formar el valor de esta columna: Interfaz de declaración Tipo de cursor Simultaneidad de cursor Alcance del cursor Nivel de anidamiento de cursor Por ejemplo, el valor devuelto en esta columna podría ser "TSQL | Dinámico | Optimista | Global (0)". |
sql_handle | varbinary(64) | Identificador del texto del lote que declaró el cursor. |
statement_start_offset | int | Número de caracteres en el lote que se está ejecutando actualmente o procedimiento almacenado en el que se inicia la instrucción que se está ejecutando actualmente. Se puede usar junto con el sql_handle, el statement_end_offset y la función de administración dinámica sys.dm_exec_sql_text para recuperar la instrucción que se está ejecutando actualmente para la solicitud. |
statement_end_offset | int | Número de caracteres en el lote que se está ejecutando actualmente o procedimiento almacenado en el que finaliza la instrucción que se está ejecutando actualmente. Se puede usar junto con el sql_handle, el statement_start_offset y la función de administración dinámica sys.dm_exec_sql_text para recuperar la instrucción que se está ejecutando actualmente para la solicitud. |
plan_generation_num | bigint | Número de secuencia que se puede usar para distinguir entre instancias de los planes después de una nueva compilación. |
creation_time | datetime | Marca de tiempo a la que se creó este cursor. |
is_open | bit | Especifica si el cursor está abierto. |
is_async_population | bit | Especifica si el subproceso en segundo plano aún está llenando asincrónicamente un cursor KEYSET o STATIC. |
is_close_on_commit | bit | Especifica si el cursor se declaró mediante CURSOR_CLOSE_ON_COMMIT. 1 = El cursor se cerrará cuando finalice la transacción. |
fetch_status | int | Devuelve el estado de la última recopilación del cursor. Este es el último valor devuelto @@FETCH_STATUS. |
fetch_buffer_size | int | Devuelve información acerca del tamaño del búfer de lectura. 1 = Cursores Transact-SQL. Se puede establecer en un valor mayor para los cursores API. |
fetch_buffer_start | int | Para cursores FAST_FORWARD y DYNAMIC, devuelve 0 si el cursor no está abierto o si se ha colocado antes de la primera fila. De lo contrario, devuelve -1. Para cursores STATIC y KEYSET, devuelve 0 si el cursor no está abierto y -1 si se ha colocado después de la última fila. De lo contrario, devuelve el número de fila en la que se ha colocado. |
ansi_position | int | Posición del cursor en el búfer de lectura. |
worker_time | bigint | Tiempo empleado, en microsegundos, por los trabajadores que ejecutan este cursor. |
Lee | bigint | Número de lecturas realizadas por el cursor. |
Escribe | bigint | Número de escrituras realizadas por el cursor. |
dormant_duration | bigint | Milisegundos desde que se inició la última consulta (abierta o capturada) en este cursor. |
es necesario contar con el permiso VIEW SERVER STATE en el servidor.
Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.
En la tabla siguiente se proporciona información acerca de la interfaz de la declaración del cursor y se incluyen los valores posibles para la columna de propiedades.
Propiedad | Descripción |
---|---|
API | El cursor se declaró mediante una de las API de acceso a datos (ODBC, OLEDB). |
TSQL | El cursor se declaró mediante la sintaxis Transact-SQL DECLARE CURSOR. |
En la tabla siguiente se proporciona información acerca del tipo de cursor y se incluyen los valores posibles para la columna de propiedades.
Tipo | Descripción |
---|---|
Keyset | El cursor se ha declarado como de conjunto de claves. |
Dinámica | El cursor se ha declarado como dinámico. |
Depurador de | El cursor se ha declarado como instantánea o estático. |
Fast_Forward | El cursor se ha declarado como de avance rápido. |
En la tabla siguiente se proporciona información acerca de la simultaneidad de cursor y se incluyen los valores posibles para la columna de propiedades.
Simultaneidad | Descripción |
---|---|
Solo lectura | El cursor se ha declarado como de solo lectura. |
Scroll Locks | El cursor utiliza bloqueos de desplazamiento. |
Optimistic | El cursor utiliza control de simultaneidad optimista. |
En la tabla siguiente se proporciona información acerca del alcance del cursor y se incluyen los valores posibles para la columna de propiedades.
Ámbito | Descripción |
---|---|
Local | Especifica que el alcance del cursor es local para el proceso por lotes, procedimiento almacenado o desencadenador en que se creó el cursor. |
Global | Especifica que el alcance del cursor es global para la conexión. |
En este ejemplo se devuelve información acerca de los cursores que llevan abiertos en el servidor más tiempo del especificado de 36 horas.
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
Funciones y vistas de administración dinámica (Transact-SQL)
Funciones y vistas de administración dinámica relacionadas con ejecuciones (Transact-SQL)
sys.dm_exec_sessions (Transact-SQL)
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoy