sys.dm_exec_query_memory_grants
Nuevo: 14 de abril de 2006
Devuelve información acerca de las consultas que han adquirido una concesión de memoria o que aún requieren una concesión de memoria para ejecutarse. Las consultas que no están a la espera de una concesión de memoria no aparecerán en esta vista.
Nombre de columna | Tipo de datos | Descripción |
---|---|---|
session_id |
smallint |
Id. (SPID) de la sesión en la que se está ejecutando esta consulta. |
request_id |
int |
Id. de la solicitud. Es único en el contexto de la sesión. |
scheduler_id |
int |
Id. del programador que programa esta consulta. |
dop |
smallint |
Grado de paralelismo de esta consulta. |
request_time |
datetime |
Fecha y hora a la que esta consulta solicitó la concesión de memoria. |
grant_time |
datetime |
Fecha y hora a la que se concedió la memoria para esta consulta. Es NULL si aún no se ha concedido la memoria. |
requested_memory_kb |
bigint |
Memoria solicitada total en kilobytes. |
granted_memory_kb |
bigint |
Memoria total realmente otorgada en kilobytes. Puede ser NULL si aún no se ha concedido la memoria. En una situación típica, este valor debe ser igual a requested_memory_kb. En la creación de índices, el servidor puede permitir memoria adicional a petición además de la memoria concedida inicialmente. |
required_memory_kb |
bigint |
Memoria mínima necesaria para ejecutar esta consulta en kilobytes. requested_memory_kb es igual o mayor que esta cantidad. |
used_memory_kb |
bigint |
Memoria física usada en este momento en kilobytes. |
max_used_memory_kb |
bigint |
Memoria física máxima usada hasta este momento en kilobytes. |
query_cost |
float |
Costo estimado de la consulta. |
timeout_sec |
int |
Tiempo de espera en segundos antes de que esta consulta abandone la solicitud de concesión de memoria. |
resource_semaphore_id |
smallint |
Id. del semáforo de recursos al que está esperando esta consulta. |
queue_id |
smallint |
Id. de la cola de espera en la que esta consulta espera las concesiones de memoria. Es NULL si ya se ha concedido la memoria. |
wait_order |
int |
Orden secuencial de las consultas en espera en el queue_id especificado. Este valor puede cambiar para una determinada consulta si otras consultas obtienen concesiones de memoria o tiempos de espera. Es NULL si ya se ha concedido la memoria. |
is_next_candidate |
bit |
Candidata para la siguiente concesión de memoria. 1 = Sí 0 = No NULL = Ya se ha concedido la memoria. |
wait_time_ms |
bigint |
Tiempo de espera en milisegundos. Es NULL si ya se ha concedido la memoria. |
plan_handle |
varbinary(64) |
Identificador de este plan de consulta. Use sys.dm_exec_query_plan para extraer el plan XML real. |
sql_handle |
varbinary(64) |
Identificador del texto de Transact-SQL de esta consulta. Use sys.dm_exec_sql_text para obtener el texto de Transact-SQL real. |
Permisos
Requiere el permiso VIEW SERVER STATE en el servidor.
Notas
Un escenario de depuración típico para un tiempo de espera de consulta puede tener el siguiente aspecto:
- Compruebe el estado de la memoria del sistema global con sys.dm_os_memory_clerks, sys.dm_os_sys_info y diversos contadores de rendimiento.
- Compruebe las reservas de memoria para la ejecución de consultas en sys.dm_os_memory_clerks, donde
type = 'MEMORYCLERK_SQLQERESERVATIONS'
. - Compruebe las consultas que están en espera de concesiones con sys.dm_exec_query_memory_grants.
- Examine más las consultas que utilizan mucha memoria con sys.dm_exec_requests.
- Si sospecha que hay una consulta descontrolada, examine el plan de presentación en sys.dm_exec_query_plan y el texto del lote en sys.dm_exec_sql_text.
Las consultas que utilizan las vistas de administración dinámica que incluyen ORDER BY o agregados pueden aumentar el consumo de memoria y, de esta forma, contribuir al problema que están intentando solucionar. sys.dm_exec_query_memory_grants es nuevo en el Service Pack 1 de SQL Server 2005. La información que aparece en sys.dm_exec_query_memory_grants es específica de la implementación interna de SQL Server 2005 y se prevé que cambie en la próxima versión de SQL Server. Use sys.dm_exec_query_memory_grants para solucionar problemas, pero no lo incluya en aplicaciones que utilizarán futuras versiones de SQL Server.
Vea también
Referencia
sys.dm_exec_query_resource_semaphores
Funciones y vistas de administración dinámica relacionadas con ejecuciones