Cómo utilizar el comando DBCC MEMORYSTATUS para supervisar el uso de memoria en SQL Server 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 907877 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

este artículo describe el resultado del comando DBCC MEMORYSTATUS. Este comando se utiliza con frecuencia para solucionar problemas de consumo de memoria de Microsoft SQL Server.

En este artículo describe los elementos de la salida para el Administrador de memoria, para el resumen de uso de memoria, la información de memoria agregado, la información de distribución de búfer, la información de grupo de búfer y la información de caché de procedimiento. También describe el resultado sobre objetos de memoria global, sobre objetos de memoria de consulta, acerca de la optimización y acerca de los agentes de memoria.

INTRODUCCIÓN

El comando DBCC MEMORYSTATUS proporciona una instantánea del estado de memoria actual de Microsoft SQL Server. Puede utilizar el resultado de este comando para solucionar problemas de consumo de memoria en SQL Server o para solucionar errores específicos de memoria insuficiente. (Muchos errores de memoria insuficiente imprimirán automáticamente esta salida en el registro de errores). Servicios de soporte técnico de Microsoft también puede solicitar que ejecute este comando durante un incidente de soporte específico si experimenta un error que puede asociarse con una condición de poca memoria.

Nota Monitor de rendimiento (PerfMon) y Administrador de tareas no tiene en cuenta memoria correctamente si está habilitada la compatibilidad con extensiones de ventana de dirección (AWE).

Este artículo describe algunos de los datos que pueden obtener los resultados del comando DBCC MEMORYSTATUS. Varias secciones de este artículo incluyen detalles de implementación propietario que no se explican aquí. Servicios de soporte técnico de Microsoft no responda a las preguntas o proporcionar más información sobre el significado de los contadores específicos más allá de la información que se suministra en este artículo.

Más información

importante El comando DBCC MEMORYSTATUS pretende ser una herramienta de diagnóstico para servicios de soporte técnico de Microsoft. El formato del resultado y el nivel de detalle que se proporciona están sujetos a cambio entre los service packs y versiones de producto. La funcionalidad que proporciona el comando DBCC MEMORYSTATUS puede reemplazarse por un mecanismo diferente en versiones posteriores del producto. Por lo tanto, en versiones posteriores del producto, este comando ya no puede funcionar. No se realizarán advertencias adicionales antes de este comando se ha cambiado o eliminado. Por lo tanto, las aplicaciones que utilizan este comando pueden romper sin previo aviso.

El resultado del comando DBCC MEMORYSTATUS ha cambiado de versiones anteriores de SQL Server. El resultado contiene ahora varias secciones que estaban disponibles en versiones anteriores.

Administrador de memoria

La primera sección del resultado es el Administrador de memoria. Esta sección muestra el consumo de memoria global por SQL Server.
   Memory Manager                 KB 
   ------------------------------ --------------------
   VM Reserved                    1761400
   VM Committed                   1663556
   AWE Allocated                  0
   Reserved Memory                1024
   Reserved Memory In Use         0

   (5 row(s) affected)
Los elementos de esta sección son los siguientes:
  • Memoria virtual reservada : este valor muestra el importe total de espacio de direcciones virtual (VAS) que SQL Server ha reservado.
  • Ejecución de VM : este valor muestra el importe total de VAS que SQL Server se ha comprometido. VAS comprometida se ha asociado con la memoria física.
  • AWE asignada : este valor muestra el importe total de memoria que se asigna a través del mecanismo AWE en la versión de 32 bits de SQL Server. O bien, este valor muestra la cantidad total de memoria que páginas bloqueadas consumir en la versión de 64 bits del producto.
  • Memoria reservada : este valor muestra la memoria que está reservada para la conexión de administrador dedicada (DAC).
  • Memoria reservada en uso : este valor muestra la memoria reservada que está siendo utilizada.

Resumen del uso de memoria

La sección Administrador de memoria es seguida por un resumen del uso de memoria para cada nodo de la memoria. En un sistema habilitado el acceso (NUMA) de memoria no uniforme, habrá una entrada de nodo de memoria correspondiente para cada nodo NUMA del hardware. En un sistema SMP, habrá una entrada de nodo única de memoria.

Nota El nodo de memoria ID puede no coincidir con el nodo ID. de hardware
   Memory node Id = 0             KB 
   ------------------------------ --------------------
   VM Reserved                    1757304
   VM Committed                   1659612
   AWE Allocated                  0
   MultiPage Allocator            10760
   SinglePage Allocator           73832

   (5 row(s) affected)
Nota estos valores mostrar la memoria que se asigna por subprocesos que se ejecutan en este nodo NUMA. Estos valores no son la memoria que es local para el nodo NUMA.

Los elementos de esta sección son los siguientes:
  • Memoria virtual reservada : este valor muestra el VAS que está reservada por subprocesos que se ejecutan en este nodo.
  • Ejecución de VM : este valor muestra el VAS que se confirma mediante subprocesos que se ejecutan en este nodo.
  • AWE asignada : este valor muestra la memoria que está asignada a través del mecanismo AWE en la versión de 32 bits del producto. O bien, este valor muestra la cantidad total de memoria que se consume en páginas bloqueadas en la versión de 64 bits del producto.

    En un sistema NUMA habilitado, este valor puede ser incorrecto o negativo. Sin embargo, el valor de Asignación AWE general en la sección Administrador de memoria es un valor correcto. Para controlar la memoria asignada por los nodos individuales de NUMA, utilice SQL Server: nodo de búfer objetos de rendimiento. (Para obtener más información, consulte Los libros en pantalla de SQL Server .)
  • Asignador de multiPage : este valor muestra la memoria que se asigna mediante el asignador de multipage por subprocesos que se ejecutan en este nodo. Esta memoria proviene de fuera del grupo de búfer.
  • Asignador de SinglePage : este valor muestra la memoria que se asigna mediante el asignador de una sola página por subprocesos que se ejecutan en este nodo. Esta memoria es robada desde el grupo de búfer.
Nota Las sumas de los valores de VM reservado y los valores de Memoria virtual confirmada en todos los nodos de memoria será ligeramente menor que los valores correspondientes que se notifican en la sección Administrador de memoria.

Memoria de agregado

La sección siguiente contiene información de memoria agregado para cada tipo de empleado y para cada nodo NUMA. Para un sistema NUMA habilitado, puede ver la salida que sea similar al siguiente.

Nota La tabla siguiente contiene sólo una parte de la salida.
   MEMORYCLERK_SQLGENERAL (node 0)                                  KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             592
   MultiPage Allocator                                              2160

   (7 row(s) affected)

   MEMORYCLERK_SQLGENERAL (node 1)                                  KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             136
   MultiPage Allocator                                              0

   (7 row(s) affected)

   MEMORYCLERK_SQLGENERAL (Total)                                   KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             728
   MultiPage Allocator                                              2160

   (7 row(s) affected)
Nota Estos identificadores de nodo corresponden a la configuración de nodo NUMA del equipo que ejecuta SQL Server. El nodo ID incluyen nodos NUMA software posibles que se definen en parte superior de nodos NUMA del hardware o en parte superior de un sistema SMP. Para buscar la asignación entre el ID de nodo y CPU de cada nodo, ver información número de identificador de suceso 17152. Este evento se registra en el registro en el Visor de sucesos de aplicación cuando se inicie SQL Server.

Para un sistema SMP, verá sólo una sección para cada tipo de empleado. Esta sección es similar al siguiente.
   MEMORYCLERK_SQLGENERAL (Total)                                   KB 
   ---------------------------------------------------------------- --------------------
   VM Reserved                                                      0
   VM Committed                                                     0
   AWE Allocated                                                    0
   SM Reserved                                                      0
   SM Commited                                                      0
   SinglePage Allocator                                             768
   MultiPage Allocator                                              2160

   (7 row(s) affected)
Otra información en estas secciones es acerca de memoria compartida:
  • SM reservada : este valor muestra el VAS que está reservada por todos los empleados de este tipo que utilizan los archivos asignados en memoria API. Esta API es también conocida como memoria compartida .
  • Ejecución SM : este valor muestra el VAS que confirmado por todos los empleados de este tipo que utilizan archivos asignados en memoria API.
Puede obtener información de resumen para cada tipo de empleado para todos los nodos de memoria mediante la vista de sys.dm_os_memory_clerks administración dinámica (DMV). Para ello, ejecute la siguiente consulta:
select 
	type,
	sum(virtual_memory_reserved_kb) as [VM Reserved],
	sum(virtual_memory_committed_kb) as [VM Committed],
	sum(awe_allocated_kb) as [AWE Allocated],
	sum(shared_memory_reserved_kb) as [SM Reserved], 
	sum(shared_memory_committed_kb) as [SM Committed],
	sum(multi_pages_kb) as [MultiPage Allocator],
	sum(single_pages_kb) as [SinlgePage Allocator]
from 
	sys.dm_os_memory_clerks 
group by type

Distribución de búfer

La sección siguiente muestra la distribución de búferes de 8 kilobytes (KB) en el grupo de búferes.
   Buffer Distribution            Buffers
   ------------------------------ -----------
   Stolen                         553
   Free                           103
   Cached                         161
   Database (clean)               1353
   Database (dirty)               38
   I/O                            0
   Latched                        0

   (7 row(s) affected)
Los elementos de esta sección son los siguientes:
  • Stolen : memoria Stolen describe búferes de 8 KB que el servidor utiliza para varios propósitos. Estos búferes servir como las asignaciones de almacén de memoria genérico. Los diferentes componentes del servidor utilizan estos búferes para almacenar estructuras de datos internos. El proceso de escritura diferida no está permitido para vaciar los búferes de Stolen fuera del grupo de búfer.
  • libre : este valor muestra confirmados búferes que no están actualmente siendo utilizados. Estos búferes están disponibles para almacenar datos. O bien, pueden solicitar estos búferes y, a continuación, marcar estos búferes como Stolen otros componentes.
  • en : este valor muestra los búferes que se utilizan para varias cachés.
  • base de datos (limpia) : este valor muestra los búferes que tienen contenido de la base de datos y que no se han modificado.
  • base de datos (dirty) : este valor muestra los búferes que tienen contenido de la base de datos y que se han modificado. Estos búferes contienen cambios que se deben vaciar a disco.
  • E/s : este valor muestra los búferes que están esperando una operación de E/s pendiente.
  • Latched : este valor muestra los búferes de activada . Un búfer está activado cuando un subproceso es leer o modificar el contenido de una página. Un búfer también está activado al leer la página desde el disco o escrito en disco. Un pestillo se utiliza para mantener la coherencia física de los datos en la página mientras se está leer o modificar. Un bloqueo se utiliza para mantener la coherencia lógica y transaccional.

Detalles de grupo de búfer

Puede obtener información detallada acerca de búferes de grupo de búfer para las páginas de la base de datos utilizando sys.dm_os_buffer_descriptors DMV. Y puede obtener información detallada sobre páginas de grupo de búfer que se utilizan para fines de servidor varios utilizando sys.dm_os_memory_clerks DMV.

La siguiente sección muestra detalles sobre el grupo de búferes e información adicional.
   Buffer Counts                  Buffers
   ------------------------------ --------------------
   Committed                      1064
   Target                         17551
   Hashed                         345
   Stolen Potential               121857
   External Reservation           645
   Min Free                       64
   Visible                        17551
   Available Paging File          451997

   (8 row(s) affected)
Los elementos de esta sección son los siguientes:
  • comprometido : este valor muestra los búferes totales que se confirman . Búferes que se confirman dispone de memoria física asociada con ellos. El valor de comprometido es el tamaño actual del grupo de búferes. Este valor incluye la memoria física que se asigna si se ha habilitado la compatibilidad con AWE.
  • destino : este valor muestra el tamaño de destino del grupo de búferes. Si el valor de destino es mayor que el valor de comprometido , el grupo de búferes está creciendo. Si el valor de objetivo es menor que el valor de comprometido , es reducir el grupo de búferes.
  • hash : este valor muestra las páginas de datos y las páginas de índice que se almacenan en el grupo de búferes.
  • Robo posibles : este valor muestra las páginas máxima que el grupo de búferes se pueden robar.
  • ExternalReservation : este valor muestra las páginas que se han reservado para las consultas que se llevan a cabo una operación de ordenación o una operación hash. Estas páginas han no aún ha robado.
  • Min libre : este valor muestra las páginas que el grupo de búferes intenta tiene en la lista libre.
  • visible : este valor muestra los búferes son visibles al mismo tiempo. Estos búferes pueden abrirse directamente al mismo tiempo. Este valor equivale normalmente a los búferes de totales. Sin embargo, cuando está habilitada la compatibilidad con AWE, este valor puede ser menor que el búferes totales.
  • Archivo de paginación disponible : este valor muestra la memoria que está disponible para comprometerse. Este valor se expresa como el número de búferes de 8 KB. Para obtener más información, vea el tema "GlobalMemoryStatusEx función" en la documentación de API de Windows.

Caché de procedimientos

La siguiente sección describe la composición de la caché de procedimiento
   Procedure Cache                Value
   ------------------------------ -----------
   TotalProcs                     4
   TotalPages                     25
   InUsePages                     0

   (3 row(s) affected)
los elementos en esta sección son los siguientes:
  • TotalProcs : este valor muestra los objetos totales de caché que están actualmente en la caché de procedimientos. Este valor coincidirá con las entradas de sys.dm_exec_cached_plans DMV.

    Nota Debido a la naturaleza dinámica de esta información, la coincidencia no sea exacta. Puede utilizar PerfMon para supervisar el SQL Server: Planear caché objeto y el sys.dm_exec_cached_plans DMV para obtener información detallada acerca del tipo de objetos en caché, tales como los desencadenadores, procedimientos y objetos de ad hoc.
  • TotalPages : este valor muestra las páginas acumulativas que debe tener que almacenar todos los objetos en caché en la caché de procedimientos.
  • InUsePages : este valor muestra las páginas en la caché de procedimientos que pertenecen a los procedimientos que se están ejecutan actualmente. Estas páginas no puede descartarse.

Objetos de memoria global

La sección siguiente contiene información acerca de diversos objetos de memoria global. Esta sección también contiene información acerca de cuánto uso de objetos de memoria de la memoria global.
   Global Memory Objects          Buffers
   ------------------------------ --------------------
   Resource                       126
   Locks                          85
   XDES                           10
   SETLS                          2
   SE Dataset Allocators          4
   SubpDesc Allocators            2
   SE SchemaManager               44
   SQLCache                       41
   Replication                    2
   ServerGlobal                   25
   XP Global                      2
   SortTables                     2

   (12 row(s) affected)
Los elementos de esta sección son los siguientes:
  • recurso : este valor muestra la memoria que utiliza el objeto Resource . El objeto Resource se utiliza el motor de almacenamiento y para diversas estructuras de todo el servidor.
  • bloquea : este valor muestra la memoria que utiliza Administrador de bloqueos.
  • XDES : este valor muestra la memoria que utiliza Administrador de transacciones.
  • SETLS : este valor muestra la memoria que se utiliza para asignar la estructura de por subproceso de motor de almacenamiento específicas que utiliza almacenamiento local de subprocesos.
  • Asignadores de DataSet SE : este valor muestra la memoria que se utiliza para asignar estructuras de acceso a la tabla mediante la configuración de Métodos de acceso .
  • Asignadores SubpDesc : este valor muestra la memoria que se utiliza para administrar subprocesos para las consultas en paralelo, operaciones de copia de seguridad, las operaciones de restauración, las operaciones de base de datos, las operaciones de archivos, reflejo y los cursores asincrónicos. Estos subprocesos son también conocido como procesos paralelos .
  • SchemaManager SE : este valor muestra la memoria que utiliza el Administrador de esquema para almacenar metadatos específicos de motor de almacenamiento.
  • SQLCache : este valor muestra la memoria que se utiliza para almacenar el texto de instrucciones ad hoc y de instrucciones preparadas.
  • duplicación : este valor muestra la memoria que el servidor utiliza para subsistemas de réplica internos.
  • ServerGlobal : este valor muestra el objeto de memoria de servidor global que se utiliza genéricamente en varios subsistemas.
  • Global de XP : este valor muestra la memoria que extiende el uso de procedimientos almacenados.
  • Ordenar tablas : este valor muestra la memoria que ordenar el uso de tablas.

Objetos de memoria de consulta

En la siguiente sección se describe información de concesión de memoria de consulta. Esta sección incluye una instantánea del uso de memoria de consulta. Query memory is also known as workspace memory.
   Query Memory Objects           Value
   ------------------------------ -----------
   Grants                         0
   Waiting                        0
   Available (Buffers)            14820
   Maximum (Buffers)              14820
   Limit                          10880
   Next Request                   0
   Waiting For                    0
   Cost                           0
   Timeout                        0
   Wait Time                      0
   Last Target                    11520

   (11 row(s) affected)

   Small Query Memory Objects     Value       
   ------------------------------ ----------- 
   Grants                         0
   Waiting                        0
   Available (Buffers)            640
   Maximum (Buffers)              640
   Limit                          640

   (5 row(s) affected)
If the size and the cost of a query satisfy ?small? query memory thresholds, the query is put in a small query queue. Este comportamiento impide que se retrase detrás de consultas más grandes que ya están en la cola de consultas más pequeñas.

Los elementos de esta sección son los siguientes:
  • concede : este valor muestra las consultas de ejecución que tienen concesiones de memoria.
  • esperando : este valor muestra las consultas que están esperando obtener concesiones de memoria.
  • disponible : este valor muestra los búferes que están disponibles para consultas para su uso como área de trabajo de hash y ordenar como área de trabajo. El valor de disponible se actualiza periódicamente.
  • máximo : este valor muestra los búferes totales que se pueden proporcionar a todas las consultas para su uso como área de trabajo.
  • límite : este valor muestra el destino de ejecución de consulta de la cola grande de la consulta. Este valor difiere del valor máximo (búferes) porque no se actualiza el valor máximo (búferes) hasta que haya cambios en la cola.
  • Solicitud siguiente : este valor muestra el tamaño de solicitud de memoria, de búferes, para la siguiente consulta en espera.
  • Esperando para : este valor muestra la cantidad de memoria que debe estar disponible para ejecutar la consulta para que el valor de La solicitud siguiente hace referencia. El valor de Espera para es el valor de La solicitud siguiente multiplicado por un factor restante. Este valor eficazmente garantiza que una determinada cantidad de memoria estará disponible cuando se ejecuta la siguiente consulta de espera.
  • costo : este valor muestra el coste de la siguiente consulta de espera.
  • tiempo de espera : este valor muestra el tiempo de espera en segundos, para la siguiente consulta en espera.
  • Tiempo de espera : este valor muestra el tiempo transcurrido, en milisegundos, puesto que la siguiente consulta en espera se coloca en la cola.
  • Último destino : este valor muestra el límite de memoria global para la ejecución de consulta. Este valor es el límite combinado para la cola grande de la consulta y la cola de consulta pequeña.

Optimización

The next section is a summary of the users who are trying to optimize queries at the same time.
   Optimization Queue             Value
   ------------------------------ --------------------
   Overall Memory                 156672000
   Last Notification              1
   Timeout                        6
   Early Termination Factor       5

   (4 row(s) affected)

   Small Gateway                  Value
   ------------------------------ --------------------
   Configured Units               8
   Available Units                8
   Acquires                       0
   Waiters                        0
   Threshold Factor               250000
   Threshold                      250000

   (6 row(s) affected)

   Medium Gateway                 Value
   ------------------------------ --------------------
   Configured Units               2
   Available Units                2
   Acquires                       0
   Waiters                        0
   Threshold Factor               12

   (5 row(s) affected)

   Big Gateway                    Value
   ------------------------------ --------------------
   Configured Units               1
   Available Units                1
   Acquires                       0
   Waiters                        0
   Threshold Factor               8

   (5 row(s) affected)
Queries are submitted to the server for compilation. El proceso de compilación incluye análisis algebraization y optimización. Las consultas se clasifican según la cantidad de memoria que consumirá cada consulta durante el proceso de compilación.

Nota Este importe no incluye la memoria necesaria para ejecutar la consulta.

Cuando se inicia una consulta, no hay ningún límite en cuántas consultas pueden compilarse. A medida que el consumo de memoria aumenta y alcanza un umbral, la consulta debe pasar una puerta de enlace para continuar. Tiene un límite progresivamente decreciente de consultas simultáneamente compiladas después de cada puerta de enlace. El tamaño de cada puerta de enlace depende de la plataforma y la carga. Tamaños de puerta de enlace se eligen para maximizar la escalabilidad y rendimiento.

Si la consulta no puede pasar una puerta de enlace, la consulta esperará hasta que haya memoria disponible. O bien, la consulta devolverá un error en tiempo de espera (error 8628). Además, la consulta no puede adquirir una puerta de enlace si el usuario cancela la consulta o si se detecta un interbloqueo. Si una consulta pasa varias puertas de enlace, la consulta no libera las puertas de enlace menores hasta que finalice el proceso de compilación.

Este comportamiento permite las sólo unas intensivo de la memoria compilaciones se producen al mismo tiempo. Además, este comportamiento maximiza el rendimiento para consultas más pequeñas.

Agentes de memoria

Las tres secciones siguientes mostrar información sobre los agentes de memoria en el control almacena en caché memoria, memoria robado y la memoria reservada. Información que proporcionan estas secciones sólo puede utilizarse para diagnósticos internos. Por lo tanto, esta información no es detallada aquí.
   MEMORYBROKER_FOR_CACHE           Value
   -------------------------------- --------------------
   Allocations                      1843
   Rate                             0
   Target Allocations               1843
   Future Allocations               0
   Last Notification                1

   (4 row(s) affected)

   MEMORYBROKER_FOR_STEAL           Value
   -------------------------------- --------------------
   Allocations                      380
   Rate                             0
   Target Allocations               1195
   Future Allocations               0
   Last Notification                1

   (4 row(s) affected)

   MEMORYBROKER_FOR_RESERVE         Value
   -------------------------------- --------------------
   Allocations                      0
   Rate                             0
   Target Allocations               1195
   Future Allocations               0
   Last Notification                1

   (4 row(s) affected)

Propiedades

Id. de artículo: 907877 - Última revisión: martes, 20 de noviembre de 2007 - Versión: 1.3
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
Palabras clave: 
kbmt kbsql2005engine kbtshoot kbinfo KB907877 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 907877

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com