sys.dm_exec_requests
Actualizado: 12 de diciembre de 2006
Devuelve una fila para cada solicitud que se ejecuta dentro de SQL Server. Las vistas de administración dinámica sys.dm_exec_connections, sys.dm_exec_sessions y sys.dm_exec_requests de ámbito de servidor se asignan a la vista del sistema sys.sysprocesses (anteriormente, una tabla del sistema).
[!NOTA] Para ejecutar código situado fuera de SQL Server (por ejemplo, en procedimientos almacenados extendidos y consultas distribuidas), se tiene que ejecutar un subproceso fuera del control del programador no preferente. Para hacerlo, un trabajador se cambia al modo preferente. Los valores de tiempo que devuelve esta vista de administración dinámica no incluyen el tiempo transcurrido en modo preferente.
Nombre de columna
Tipo de datos
Descripción
session_id
smallint
Id. de la sesión con la que está relacionado este mensaje. No acepta valores NULL.
request_id
int
Id. de la solicitud. Es único en el contexto de la sesión. No acepta valores NULL.
start_time
datetime
Hora a la que la solicitud está programada para ejecutarse. No acepta valores NULL.
status
nvarchar(60)
Estado de la solicitud. Los valores son los siguientes:
- Fondo. La solicitud es un subproceso en segundo plano, como el monitor de recursos o el monitor de interbloqueos.
- En ejecución. La solicitud se está ejecutando.
- Ejecutable. La solicitud se está ejecutando y está temporalmente fuera de programa porque se ha quedado sin quórum.
- En espera. No hay ningún trabajo que realizar.
- Pendiente. La solicitud está esperando a que un proceso de trabajo la ejecute.
- Suspendido. La solicitud espera algún evento.
No acepta valores NULL.
command
nvarchar(32)
Identifica el tipo de comando que se va a procesar. Los tipos de comandos comunes incluyen lo siguiente:
- SELECT
- INSERT
- UPDATE
- DELETE
- BACKUP LOG
- BACKUP DB
- DBCC
- WAITFOR
El texto de la solicitud se puede recuperar con la función de administración dinámica sys.dm_exec_sql_text con el correspondiente sql_handle para la solicitud. Los procesos internos del sistema establecen el comando, según el tipo de tarea que realizan. Las tareas pueden incluir las siguientes:
- LOCK MONITOR
- CHECKPOINTLAZY
- WRITER
No acepta valores NULL.
sql_handle
varbinary(64)
Identificador de la instrucción SQL de la solicitud. Este identificador se puede usar para recuperar el texto de la instrucción real de la función de administración dinámica sys.dm_exec_sql_text. No acepta valores NULL.
statement_start_offset
int
Posición del carácter inicial de la instrucción en ejecución en el lote o procedimiento almacenado en ejecución. Se puede utilizar junto con la función de administración dinámica sys.dm_exec_sql_text, statement_end_offset y sql_handle para recuperar la instrucción en ejecución para la solicitud. Acepta valores NULL.
statement_end_offset
int
Posición del carácter final de la instrucción en ejecución en el lote o procedimiento almacenado en ejecución. Se puede utilizar junto con la función de administración dinámica sys.dm_exec_sql_text, statement_start_offset y sql_handle para recuperar la instrucción en ejecución para la solicitud. Acepta valores NULL.
plan_handle
varbinary(64)
Identificador del plan de consulta de la solicitud. Para ver el plan de consulta, úselo con la función de administración dinámica sys.dm_exec_query_plan. Para consultar la caché del plan, use la función de administración dinámica sys.dm_exec_cached_plans. Para ver los atributos del plan, use la función sys.dm_exec_plan_attributes. Acepta valores NULL.
database_id
smallint
Id. de la base de datos en la que se ejecuta la consulta. Para obtener más información de la base de datos, consulte la vista del catálogo sys.databases; para obtener el nombre de la base de datos, use la función intrínseca db_name(). No acepta valores NULL.
user_id
int
Id. del usuario que ejecuta la solicitud. Para obtener más información del usuario, consulte la vista del catálogo sys.database_principals. No acepta valores NULL.
connection_id
uniqueidentifier
Id. de la conexión a la que ha llegado la solicitud. Para obtener más información acerca de la conexión física o lógica, consulte la vista de administración dinámica sys.dm_exec_connections. Acepta valores NULL.
blocking_session_id
smallint
Id. de la sesión que bloquea la solicitud. Si esta columna es 0, la solicitud no está bloqueada, o bien la información de la sesión de bloqueo no está disponible o no puede ser identificada.
-2 = El recurso de bloqueo es propiedad de una transacción distribuida huérfana.
-3 = El recurso de bloqueo es propiedad de una transacción de recuperación diferida.
-4 = No se pudo determinar el Id. de sesión del propietario del pestillo de bloqueo a causa de transiciones internas de estado del pestillo.
wait_type
nvarchar(60)
Si la solicitud está bloqueada, esta columna devuelve el tipo de espera. Acepta valores NULL.
wait_time
int
Si la solicitud está bloqueada, esta columna devuelve la duración en milisegundos de la espera actual. No acepta valores NULL.
last_wait_type
nvarchar(64)
Si esta solicitud se ha bloqueado anteriormente, esta columna devuelve el tipo de la última espera. No acepta valores NULL.
wait_resource
nvarchar(512)
Si la solicitud está bloqueada, esta columna devuelve el recurso por el que está esperando la solicitud. No acepta valores NULL.
open_transaction_count
int
Número de transacciones abiertas para esta solicitud. No acepta valores NULL.
open_resultset_count
int
Número de conjuntos de resultados abiertos para esta solicitud. No acepta valores NULL.
transaction_id
bigint
Id. de la transacción donde se ejecuta esta solicitud. Este Id. es exclusivo para una instancia de SQL Server. Úselo para consultar las vistas de administración dinámica sys.dm_tran_active_transactions, sys.dm_tran_locks o sys.dm_tran_database_transactions. No acepta valores NULL.
context_info
varbinary(128)
Valor de la instrucción SET CONTEXT_INFO para la solicitud. Acepta valores NULL.
percent_complete
real
Porcentaje de trabajo completado por ciertas operaciones, incluidas las de revertir.
Nota:
Esto no proporciona datos de progreso de consultas.
No acepta valores NULL.
estimated_completion_time
bigint
Sólo para uso interno. No acepta valores NULL.
cpu_time
int
Tiempo de CPU en milisegundos utilizado por la solicitud. No acepta valores NULL.
total_elapsed_time
int
Tiempo total transcurrido en milisegundos desde que llegó la solicitud. No acepta valores NULL.
scheduler_id
int
Id. del programador que programa esta solicitud. Para obtener más información acerca de este programador, consulte la vista de administración dinámica sys.dm_os_schedulers. No acepta valores NULL.
task_address
varbinary(8)
Dirección de memoria asignada a la tarea asociada con esta solicitud. Para obtener más información acerca de esta tarea, consulte la vista de administración dinámica sys.dm_os_tasks. Acepta valores NULL.
reads
bigint
Número de lecturas realizadas por esta solicitud. No acepta valores NULL.
writes
bigint
Número de escrituras realizadas por esta solicitud. No acepta valores NULL.
logical_reads
bigint
Número de lecturas lógicas realizadas por la solicitud. No acepta valores NULL.
text_size
int
Valor de TEXTSIZE para esta solicitud. No acepta valores NULL.
language
nvarchar(256)
Valor de idioma para esta solicitud. Acepta valores NULL.
date_format
nvarchar(3)
Valor de DATEFORMAT para esta solicitud. Acepta valores NULL.
date_first
smallint
Valor de DATEFIRST para esta solicitud. No acepta valores NULL.
quoted_identifier
bit
1 = El valor de QUOTED_IDENTIFIER es ON para la solicitud. De lo contrario, es 0.
No acepta valores NULL.
arithabort
bit
1 = El valor de ARITHABORT es ON para la solicitud. De lo contrario, es 0.
No acepta valores NULL.
ansi_null_dflt_on
bit
1 = El valor de ANSI_NULL_DFLT_ON es ON para la solicitud. De lo contrario, es 0.
No acepta valores NULL.
ansi_defaults
bit
1 = El valor de ANSI_DEFAULTS es ON para la solicitud. De lo contrario, es 0.
No acepta valores NULL.
ansi_warnings
bit
1 = El valor de ANSI_WARNINGS es ON para la solicitud. De lo contrario, es 0.
No acepta valores NULL.
ansi_padding
bit
1 = El valor de ANSI_PADDING es ON para la solicitud.
De lo contrario, es 0.
No acepta valores NULL.
ansi_nulls
bit
1 = El valor de ANSI_NULLS es ON para la solicitud. De lo contrario, es 0.
No acepta valores NULL.
concat_null_yields_null
bit
1 = El valor de CONCAT_NULL_YIELDS_NULL es ON para la solicitud. De lo contrario, es 0.
No acepta valores NULL.
transaction_isolation_level
smallint
Nivel de aislamiento de las transacciones de esta solicitud. Los valores son los siguientes:
0 = Unspecified
1 = ReadUncomitted
2 = ReadCommitted
3 = Repeatable
4 = Serializable
5 = Snapshot
No acepta valores NULL.
lock_timeout
int
Tiempo de espera de bloqueo en milisegundos para esta solicitud. No acepta valores NULL.
deadlock_priority
int
Valor de DEADLOCK_PRIORITY para la solicitud. No acepta valores NULL.
row_count
bigint
Número de filas que esta solicitud ha devuelto al cliente. No acepta valores NULL.
prev_error
int
Último error que se ha producido durante la ejecución de la solicitud. No acepta valores NULL.
nest_level
int
Nivel de anidamiento del código que se está ejecutando en la solicitud. No acepta valores NULL.
granted_query_memory
int
Número de páginas asignadas a la ejecución de una consulta en la solicitud. No acepta valores NULL.
executing_managed_code
bit
Indica si esta solicitud ejecuta objetos CLR (Common Language Runtime), como rutinas, tipos y desencadenadores. Se establece para todo el tiempo que un objeto CLR está en la pila, incluso cuando ejecuta Transact-SQL desde CLR. No acepta valores NULL.
Permisos
Requiere el permiso VIEW SERVER STATE en el servidor.
[!NOTA] Si un usuario tiene el permiso VIEW SERVER STATE en el servidor, verá todas las sesiones en ejecución en la instancia de SQL Server; de lo contrario, sólo verá la sesión en la que se ejecute sys.dm_exec_requests.
Cardinalidades de relación
De | Para | Aplicar en | Relación |
---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests |
session_id |
Uno a ninguno o a varios |
sys.dm_exec_requests |
sys.dm_exec_sql_text(sql_handle) |
CROSS APPLY OUTER APPLY |
Ninguno o uno a ninguno o a uno |
sys.dm_exec_requests |
sys.dm_exec_query_plan(plan_handle) |
CROSS APPLY OUTER APPLY |
Ninguno o uno a ninguno o a uno |
sys.dm_exec_requests |
sys.dm_exec_cached_plans |
plan_handle |
Ninguno o uno a ninguno o a uno |
sys.dm_exec_requests |
sys.dm_exec_plan_attributes(plan_handle) |
CROSS APPLY OUTER APPLY |
Ninguno o uno a ninguno o a uno |
sys.dm_exec_requests |
sys.databases |
database_id |
Uno a uno |
sys.dm_exec_requests |
sys.database_principals |
user_id = principal_id |
Uno a uno |
sys.dm_exec_connections |
sys.dm_exec_requests |
connection_id |
Uno a ninguno o a uno |
sys.dm_exec_requests |
sys.dm_tran_active_transactions |
transaction_id |
Uno a uno |
Ejemplos
A. Buscar el texto de la consulta para un lote en ejecución
El ejemplo siguiente consulta sys.dm_exec_requests
para encontrar la consulta de interés y copiar su valor sql_handle
del resultado.
SELECT * FROM sys.dm_exec_requests;
GO
Después, para obtener el texto de la instrucción, use el valor sql_handle
copiado con la función del sistema sys.dm_exec_sql_text(sql_handle)
.
SELECT *
FROM sys.dm_exec_sql_text(< copied sql_handle >);
GO
B. Buscar todos los bloqueos que retiene un lote en ejecución
El ejemplo siguiente consulta sys.dm_exec_requests
para encontrar el lote de interés y copiar su valor transaction_id
del resultado.
SELECT *
FROM sys.dm_exec_requests
GO
Después, para encontrar información del bloqueo, use el valor transaction_id
copiado con la función del sistema sys.dm_tran_locks
.
SELECT *
FROM sys.dm_tran_locks
WHERE request_owner_type = N'TRANSACTION'
AND request_owner_id = < copied transaction_id >;
GO
C. Buscar todas las solicitudes bloqueadas actualmente
En el ejemplo siguiente se consulta sys.dm_exec_requests
para buscar información acerca de las solicitudes bloqueadas.
SELECT session_id ,status ,blocking_session_id
,wait_type ,wait_time ,wait_resource
,transaction_id
FROM sys.dm_exec_requests
WHERE status = N'suspended';
GO
Vea también
Referencia
Asignar tablas del sistema de SQL Server 2000 a vistas del sistema de SQL Server 2005
Funciones y vistas de administración dinámica
Funciones y vistas de administración dinámica relacionadas con ejecuciones
sys.dm_os_memory_clerks
sys.dm_os_sys_info
sys.dm_exec_query_memory_grants
sys.dm_exec_query_plan
sys.dm_exec_sql_text
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
12 de diciembre de 2006 |
|
5 de diciembre de 2005 |
|