Share via


SQL Server: Trabajar con objetos de administración dinámica

Los Objetos de administración dinámica ayudan en la administración y supervisión de los detalles de las cargas de trabajo en SQL Server, lo es fundamental para optimizar los rendimientos.

Edificaciones de "SQL Server DMV Starter Pack", publicado por libros de la puerta roja (2010).

Glenn Berry, Luis Davidson y Tim Ford

Los objetos de administración dinámica (TOC) son un conjunto de objetos de SQL Server almacenados en el esquema de sistema. Ofrecen una ventana en las actividades se realiza en las diversas instancias de SQL Server y los recursos consigue estas actividades.

En otras palabras, TOC expone información valiosa acerca de las conexiones, sesiones, las transacciones, las instrucciones de SQL y procesos se ejecutan contra una instancia de base de datos, la carga de trabajo resultante generada en el servidor, cómo se distribuye, cuando los puntos de presión y así sucesivamente. Habiendo reveló ONU cuello de botella en particular o un punto de presión, puede tomar las medidas apropiadas para aliviar el problema, quizás por la optimización de una consulta, agregar un índice o simplemente matar un bloqueo de una sesión de.

El término "dinámico" se refiere al hecho de la información almacenada en TOC se genera dinámicamente desde una gran cantidad de puntos de instrumentación. Se trata de estructuras en memoria en todo el motor de SQL Server. Estos datos se muestran a continuación, en formato tabular en el esquema de base de datos de sys. Los datos se exponen en las vistas, en cuyo caso se refiere una ellos como vistas de administración dinámica (DMV) o en funciones de valores de la tabla, en cuyo caso se refiere una dinámica de ellos como funciones de administración (DMF).

DMV y DMF es esencialmente las vistas del sistema y las funciones del sistema. Utilizarlos como lo haría cualquier otra vista y función dentro de SQL Server: consulta si tienen, unirse, pasar parámetros y en última instancia devolver ONU único resultado conjunto contiene los datos necesita para investigar un problema en particular con respecto al estado o la salud de la instancia de SQL Server.

Con Tuning de performance DMV

TOC expone una matriz una veces vertiginoso de la información. La vista original del sistema sysprocesses esencialmente ha desnormalizados y se han agregado muchos OCD nuevo. Muchas nuevas columnas de datos ahora están disponibles para las consultas. Como mejor se convierte en instrumentado el motor de base de datos, la cantidad de datos disponibles sobre el motor y el trabajo que se está haciendo, continuará creciendo.

La complejidad añadida de unir datos de una matriz dispar de OCD, junto con las opciones de lo que será columnas inicialmente desconcertantes expuestos donde, condujo a que algunos DBA equiparan consultar OCD recopilar hechizos místicos.

Sin embargo, el proceso de desnormalización, en muchos sentidos, realizó los datos que OCD devuelve mucho más fácil analizar y comprender. Una vez que comience a escribir sus propios scripts, verá los mismos trucos y patrones similares de combinación, se utiliza y otra vez. Como tal, un conjunto de núcleo relativamente pequeño de secuencias de comandos puede adaptarse fácilmente a muchos requisitos.

En cierto modo, trabajar a través de OCD para los datos de diagnóstico necesitan un proceso de pelado capas posteriores. En la capa exterior, podemos encontrar quién está conectado a nuestras instancias de SQL Server y cómo está conectados; Qué tipo de sesiones que se ejecutan contra ellos; y qué solicitudes están realizando estas sesiones. Podemos encontrar los detalles de las declaraciones de SQL que se está ejecutadas por estas solicitudes, los planes de consulta que se utilizan para ejecutarlas y así sucesivamente.

Desplegando una capa, tenemos el nivel de transacción, donde nos podemos averiguar qué bloqueos se mantienen como resultado de estas transacciones, investigar cualquier posible bloqueo y así sucesivamente. Al mover hacia abajo de otra capa, podemos encontrar cómo traduce la carga de trabajo representada por las solicitudes enviadas en trabajo real en el sistema operativo. Podemos determinar, por ejemplo:

  • Se ejecutan las tareas reales (subprocesos) para satisfacer las peticiones
  • ¿Qué trabajo está realizando en términos de uso de CPU, memoria y E/s
  • Cómo se distribuye la E/s entre los distintos archivos
  • Cómo largas aguardar, no puede continuar y por qué

Su trabajo consiste en ensamblar todas las piezas de datos de las distintas capas diferentes para proporcionar los resultados necesarios para resaltar los problemas específicos en el sistema.

Punto de tiempo vs. Acumulativo

Como se indicó, podemos consultar datos almacenados en OCD sólo como se haría con cualquier otra tabla, ver o función. Sin embargo, recuerde siempre que los datos que está viendo están "dinámicos" en la naturaleza. Se recopilan entre una gama de diferentes estructuras en el motor de base de datos y representa un point-in-time "instantánea" de la actividad que se estaba produciendo en el servidor en el momento que ejecutó la consulta DMO.

A veces, esto es exactamente lo que desea. Tienen un rendimiento de problemas y desea averiguar qué consultas se ejecutan en el servidor que podría estar causando. A veces, sin embargo, puede resultarle bastante difícil consultar los datos en estos OCD point-in-time con la esperanza de que el problema será simplemente "destaquen."

Si, por ejemplo, tiene un problema de rendimiento y desea comprobar los patrones de bloqueo "inusuales", a continuación, es poco probable que un "Seleccionar [columnas] en [bloqueo DMV]" le dirá mucho, a menos que esté muy familiarizado con lo que el bloqueo "normal" parece en el sistema y usted puede detectar anomalías.

Tenga en cuenta que los datos en un momento y probablemente se cambio cada vez consultarlo, como el estado de los cambios del servidor. Debe esperar ocasionalmente ver resultados anómalos o no representativa, y puede que necesite ejecutar un script varias veces para obtener una imagen fiel de la actividad en la instancia.

En otros casos, OCD es acumulativos. En otras palabras, los datos en una columna dada son acumulativo y incrementa cada vez que se produce un determinado evento. Por ejemplo, cada vez que una sesión de espera durante un período de tiempo para un recurso esté disponible, se registran en una columna de la DMV sys.dm_os_wait_stats. Al consultar era Despareja, verá, por ejemplo, la cantidad total de tiempo en espera para varios recursos, en todas las sesiones, ya que SQL Server se ha iniciado o reiniciado — a menos que una comprobación de coherencia de base de datos o DBCC, se ejecuta el comando para borrar manualmente las estadísticas almacenados.

Mientras que esto le dará una visión general de donde se ha invertido tiempo esperando durante un largo período, así le resultará difícil ver los detalles más pequeños. Si desea medir el impacto de ciertos cambios en la base de datos (un índice nuevo, por ejemplo), será necesario realizar una medición de la línea de base, realizar el cambio y, a continuación, medir la diferencia.

Por último, tenga siempre en cuenta que muchos de los datos que se está viendo en esos OCD es agregar datos, recopilados a través de muchas sesiones, número de solicitudes y muchas transacciones. El mencionado anteriormente wait_stats DMV, por ejemplo, mostraremos en una instancia nivel donde se SQL Server en espera de tiempo, en todas las sesiones de forma agregada. No se puede realizar un seguimiento de los tiempos de espera en un nivel de sesión individual, a menos que, por supuesto, está trabajando en un servidor aislado.

Glenn Berry

Louis Davidson

Tim Ford

Glenn Berry trabaja como arquitecto de base de datos en las tecnologías de NewsGator en Denver, Colorado Es un MVP de SQL Server y tiene una colección completa de las certificaciones de Microsoft, incluyendo MCITP, MCDBA, MCSE, MCSD, MCAD y MCT, lo que demuestra que le gusta tomar las pruebas.

Luis Davidson ha sido en la industria de TI durante 16 años como desarrollador de base de datos corporativa y arquitecto. Ha sido MVP de Microsoft SQL Server durante seis años y ha escrito cuatro libros sobre el diseño de base de datos. Actualmente es el arquitecto de datos y a veces DBA para la red de difusión cristiana, apoyar a las oficinas de playa de Virginia, Virginia y Nashville, Tennessee

Timothy Ford es MVP de SQL Server y ha estado trabajando con SQL Server para más de 10 años. Es el principal DBA y expertos para la plataforma de SQL Server para la salud del espectro. Ha sido escrito acerca de la tecnología desde el año 2007 para una variedad de sitios Web y mantiene su propio blog en thesqlagentman.com, que cubren los temas de desarrollo así como teletrabajo y profesional a SQL.

Obtener más información sobre "SQL Server DMV Starter Pack" en red-gate.com/our-company/about/book-store.

Contenido relacionado