INF: Utilizar DBCC MEMORYSTATUS para supervisar el uso de memoria de servidor SQL

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

En esta página

Resumen

El comando DBCC MEMORYSTATUS proporciona una instantánea del estado de memoria actual de SQL Server. El resultado de este comando es útil para solucionar problemas relacionados con el consumo de memoria de SQL Server o errores específicos de memoria insuficiente (muchos de los cuales imprimen automáticamente esta salida en el registro de errores). Soporte técnico de Microsoft también puede solicitar que ejecute este comando durante el curso de un incidente de compatibilidad específica si se produce un error que puede asociarse con una condición de memoria baja.

Este comando está pensado para ser una herramienta de diagnóstico para soporte técnico de Microsoft. El formato del resultado y el nivel de detalle que se proporciona está sujeta a cambios entre versiones de paquete y producto de servicio. La funcionalidad proporcionada por el comando DBCC MEMORYSTATUS probablemente se reemplazará por un mecanismo diferente en el futuro a las versiones de producto y este comando pueden dejar de funcionar. No se realizarán advertencias adicionales antes de cambiar o quitar este comando. Por lo tanto, las aplicaciones que dependen de su comportamiento pueden interrumpir sin previo aviso.

El resultado de DBCC MEMORYSTATUS contiene siete secciones. En este artículo se describe algunas de los datos claves que pueden se desprende de los resultados en las cuatro primeras secciones. Las secciones restantes implican detalles de implementación propietario y no se explican en este artículo. Soporte técnico de Microsoft no se responda a las preguntas o proporcionan información adicional acerca del significado de los contadores específicos más allá de lo que se suministra en este artículo.

Más información

Primera sección

En la primera sección se describe la distribución de búferes de 8 KB en el grupo de búferes. Hay una estructura de búfer para cada página de 8 KB posibles en el grupo de búferes. Esto incluye páginas físicas si Address Windowing Extensions (AWE) está habilitada. Esta estructura contiene un número de bits que indican el estado de la página subyacente (es decir, si se ha modificado la página, está fijado, está en E/S y más). Esta sección describe al número de búferes que tienen los bits de estado específico.
Buffer Distribution              Buffers     
------------------------------   ----------- 
Stolen                           241
Free                             95
Procedures                       89
Inram                            0
Dirty                            16
Kept                             0
I/O                              0
Latched                          18
Other                            880

(9 row(s) affected)
				
Stolen. memoria Stolen describe búferes que se utilizan para ordenar o para hash operaciones (memoria de área de trabajo de consulta) o para los búferes que se utilizan como un almacén de memoria genérico para las asignaciones para almacenar estructuras de datos internos, como bloqueos, contexto de transacción y la información de conexión. El proceso de escritura diferida no está permitido para vaciar los búferes de Stolen fuera del grupo de búfer.

libre . libre se refiere a confirmado búferes que no están en uso. Estos están disponibles para almacenar datos o pueden solicitadas por otros componentes y marcados como Stolen .

los procedimientos . procedimientos hace referencia a búferes que se mantiene la memoria caché de procedimiento almacenado. Estos búferes contienen planes compilados y ejecutables para procedimientos y los planes ad hoc almacenados en caché.

Inram . Inram hace referencia a las páginas de fijado tablas que no pueden quitarse (fijado utilizando el comando DBCC PINTABLE o el procedimiento de sp_tableoption almacenada) de memoria.

sucio . Dirty hace referencia a las páginas de datos que contienen cambios que aún de vacía en el disco.

mantiene . kept hace referencia a las páginas que temporalmente se fijan en memoria para evitar que se vacíe. Este valor no se utiliza en SQL Server 2000.

I/O. E/s hace referencia a los búferes que esperan en una operación de E/s pendiente. En SQL Server 2000, esto incluye la asignación o unmapping un búfer a través de AWE.

activada . Los búferes bloqueados registrar el número de búferes que una conexión de lectura o está modificando una fila de la página. Un pestillo se utiliza para garantizar la coherencia física de los datos en la página y se lea o se modifica, mientras que un bloqueo se utiliza para garantizar la coherencia lógica y transaccional.

otros . Son páginas confirmadas que no cumplan los criterios mencionados anteriormente. Normalmente, la mayoría de los búferes que cumplen estos criterios son datos con hash y páginas de índice en la caché del búfer.

Sección segundo

La segunda sección muestra algunos los totales que reflejen el tamaño total y la composición del grupo de búferes.
Buffer Counts                  Buffers     
------------------------------ ----------- 
Committed                      1339
Target                         6318
Hashed                         914
InternalReservation            120
ExternalReservation            0
Min Free                       16

(6 row(s) affected)
				
confirmado. El número total de búferes que se confirman en Windows NT. El valor de comprometido es la actual "tamaño" del grupo de búferes. Este valor incluye la memoria física que está asignada si AWE está habilitado.

destino . El destino confirmado recuento, o cómo grande el grupo de búferes gustaría. Si el recuento de destino es mayor que el valor de comprometido , el grupo de búferes está creciendo. Si el recuento de destino es menor que el valor de comprometido , es reducir el grupo de búferes. El proceso de escritor diferido utiliza este valor para determinar si para aumentar o reducir el grupo de búferes.

valor hash . El número de datos y el índice de las páginas que se almacenan en el grupo de búferes.

InternalReservation . El número de páginas que mantiene el grupo de búferes para sí mismo. El valor de InternalReservation es el número mínimo de páginas que son necesarias para satisfacer las demandas de datos simple para el número actual de los usuarios.

ExternalReservation . El número de páginas que se han reservado para las consultas que llevará a cabo una ordenación o una operación hash pero que ha no aún ha robado. Se utiliza como una sugerencia para la escritura diferida que habrá un requisito próximas para una gran cantidad de memoria.

min libre . El número de páginas que el búfer de memoria intenta mantener en la lista libre. Si la lista libre cae por debajo el valor Mínimo disponible , el grupo de búferes intenta llenar la lista libre descartando antiguas páginas desde la caché de datos o procedimientos antiguos desde la caché de procedimientos.

Sección tercer

En la tercera sección se describe la composición de la caché de procedimientos.
Procedure Cache                Value       
------------------------------ ----------- 
TotalProcs                     17
TotalPages                     89
InUsePages                     40

(3 row(s) affected)
				
TotalProcs . El número total de objetos en caché actualmente en la caché de procedimiento. Este valor coincidirá el número de entradas en la tabla virtual syscacheobjects . Puede utilizar a Monitor de rendimiento para supervisar el objeto Administrador de caché del servidor: SQL para un análisis detallado del tipo de objetos en caché--de ejemplo, los desencadenadores, procedimientos y ad hoc.

TotalPages . El número acumulado de las páginas que debe tener para almacenar todos los objetos en caché.

InUsePages . El número de páginas en la caché de procedimientos que pertenecen a los procedimientos que se están ejecutan actualmente. No se descartarán estos.

Sección cuarta

La cuarta sección describe la distribución relativa de búferes robados entre grupos de componentes principales en el servidor. SQL Server implementa sus propios administradores de memoria que utilizan páginas de grupo de búfer para asignaciones pequeñas, y que retroceder a rutinas de sistema operativo sólo para las asignaciones que son mayores que 8 KB aproximadamente. Estas asignaciones mayores son fuera del grupo de búfer y son comúnmente como asignaciones desde el área MemToLeave . El tamaño de esta área se puede controlar mediante el -g opción de línea de comandos.

Normalmente, la mayoría de las asignaciones de memoria de MemToLeave son de consumidores de memoria de SQL Server que están ejecutando en proceso como objetos COM, procedimientos almacenados extendidos y los servidores vinculados. Los valores relacionados con el sistema operativo que se notifican en DBCC MEMORYSTATUS sólo reflejan MemToLeave asignaciones que están directamente por SQL Server. Las otras asignaciones que se producen en MemToLeave estos otros componentes no se incluyen porque SQL Server no tiene conocimiento de estas solicitudes de memoria.
Dynamic Memory Manager         Buffers     
------------------------------ ----------- 
Stolen                         330
OS Reserved                    152
OS Committed                   138
OS In Use                      129
General                        322
QueryPlan                      87
Optimizer                      0
Utilities                      10
Connection                     40

(9 row(s) affected)
				
robo . Número total de búferes que son robadas desde el grupo de búfer por los administradores de cinco memoria (general, plan de consulta, el optimizador, utilidades, conexión). Estas páginas se utilizan para el servicio de asignaciones de memoria que son más pequeñas que 8 KB.

OS reservada . Número de páginas que están reservados del sistema operativo para controlar solicitudes de asignación son mayores que 8 KB aproximadamente.

OS confirmada . La cantidad de memoria de las regiones reservadas que se ha confirmado. El valor de La ejecución de sistema operativo debe ser menor o igual al valor Reservado del sistema operativo porque los búferes son primero reservados y confirmados, a continuación. Parte de la memoria puede ser cancelan cuando ya no se utiliza.

Nota Hay un error en SQL Server 2000 (que se corrige en Pack 3 de SQL Server 2000) que hace que este valor no para mantenerse de forma precisa y, por lo tanto, puede ser fuera del intervalo válido.

sistema operativo en uso . Los búferes OS confirmada que actualmente están realizando una seguridad asignaciones de memoria pendientes.

general . Memoria utilizada por los consumidores de memoria general en el servidor, incluido el análisis o normalización, bloqueos, contexto de transacción, estructuras de datos interna que describe los metadatos en memoria para tablas, índices y otros. Este valor es el número total de búferes de 8 KB. Algunos de estos pueden ser robados búferes desde el grupo de búfer y otras pueden ser de MemToLeave .

QueryPlan . Memoria utilizada para almacenar planes de consultas, transiently o en caché. Este valor es el número total de búferes de 8 KB. Algunos de estos pueden ser robados búferes desde el grupo de búfer y otras pueden ser de MemToLeave .

optimizador . Memoria que está en uso por el optimizador de consultas. Este valor es el número total de búferes de 8 KB. Algunos de estos pueden ser robados búferes desde el grupo de búfer y otras pueden ser de MemToLeave .

utilidades . Memoria en uso por distintas rutinas de utilidades, como BCP, Administrador de registros, consultas en paralelo, :: fn_trace_gettable y otros. Este valor es el número total de búferes de 8 KB. Algunos de estos pueden ser robados búferes desde el grupo de búfer y otras pueden ser de MemToLeave .

la conexión . Memoria que se utiliza para almacenar las estructuras de datos que contiene el contexto de conexión para cada conexión de usuario. Esto también incluye la memoria para el envío de red y recibir búferes que están asociados con una conexión. Este valor es el número total de búferes de 8 KB. Algunas de estas pueden ser robados búferes desde el grupo de búferes y otros que pueden ser desde MemToLeave .

Referencias

Libros en pantalla de SQL Server
Delaney, Kalen. Dentro de Microsoft SQL Server 2000, Microsoft Press, 2000.

Propiedades

Id. de artículo: 271624 - Última revisión: miércoles, 12 de noviembre de 2003 - Versión: 4.3
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palabras clave: 
kbmt kbinfo KB271624 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): 271624

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