Compartir a través de


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

Ayuda e información

Obtener ayuda sobre SQL Server 2005