Menú
Está libre
registrarse
el principal  /  Instalación y configuración / Uso del monitor de actividad SQL Server. Uso del monitor de rendimiento para determinar los cuellos de botella del hardware en el que el servidor SQL está ejecutando las mejores herramientas para monitorear MS SQL Server

Uso del monitor de actividad SQL Server. Uso del monitor de rendimiento para determinar los cuellos de botella del hardware en el que el servidor SQL está ejecutando las mejores herramientas para monitorear MS SQL Server

Cualquier administrador de la base de datos, seguro, tenía que lidiar con el hecho de que todo funciona lentamente, o no funciona en absoluto. Lo primero que debe averiguar es que esto suceda en SQL Server en este momento. Parecería en el arsenal del administrador, muchas de todas las piezas útiles: un monitor de actividad de BUVA, un montón de puntos de vista dinámicos (DMV), SP_WHO y SP_WHO2 procedimientos almacenados, que permanecieron heredados desde SQL Server 7 y SQL Server 2000.
Pero veamos ...

Herramientas de monitoreo

Monitor de actividad
Parecería, una gran cosa, está comprometida en el hecho de que es necesario: la actividad es monitoreada. Lanzamiento un informe de contabilidad pesado y veo qué monitor de actividad me mostrará.
En Screenshots Activity Monitor de SQL Server 2005:

Y de SQL Server Denali (2012) CTP 3.


M-sí. ¿Y si una docena de personas lanzará tales informes? Y esto no es poco frecuente ... será bastante incómodo entender, aunque, por supuesto, progresar en la cara. En Denali Activity Monitor, muestra información mucho más útil (por ejemplo, sobre lo que está sucediendo la expectativa de recursos en particular), además, podemos, por ejemplo, para la sesión deseada, ejecutar un perfilador directamente desde el monitor y seguirlo ya en el Profilador, pero, dañe, se carga adicionalmente y cargas y sin el servidor cargado. Además, ya existe un problema con los frenos, y las solicitudes que en el momento de lanzar un perfilador ya han comenzado a ser realizadas, no veremos.
Y quiero ver esto, quién y qué lo hace ahora.

sP_WHO y SP_WHO2.
En la captura de pantalla, el resultado de la ejecución de SP_WHO (desde arriba) y SP_WHO2 (parte inferior) realizada durante la construcción de todo el informe a largo plazo:


Si. Muy informativo. Mirando a SP_WHO solo podemos ver lo que está ejecutando algo. Por supuesto, se realiza, somos para ello y vemos, y vemos que se realiza algo de selección. O unos pocos selectos "Ov. Genial.
SP_WHO2 muestra más información. Ahora podemos ver cuánto tiempo de procesador pasó la sesión (y la columna plegó el tiempo total, aparentemente), el número de operaciones de E / S, el nombre de la base de datos en la que se realiza todo esto y quién está bloqueado por esta sesión ( Si está bloqueado).
El monitor de actividad, como vemos, da más información.
Dmv
Comenzando con SQL Server 2005, recibimos una nueva oportunidad para recibir información sobre el estado del servidor - Vistas de administración dinámica. MSDN dice: "Vistas y funciones administrativas dinámicas devuelven los datos de estado de los datos que se pueden usar para monitorear la salud de la instancia del servidor, el diagnóstico de problemas y la configuración de rendimiento".
Y, de hecho, en el 2005º SQL Server "E hay un conjunto de opiniones relacionadas con la ejecución de las solicitudes en el momento actual (sin embargo, también hay actuaciones para ver la" historia "): aquí están. Y su número, el número, el La versión a la versión continúa aumentando!
Seguramente, los administradores de masilla tienen muchos scripts, lo que le permite obtener información sobre el estado actual del servidor, pero ¿qué hacer si la experiencia de trabajar con DMV aún no está aún, pero ya hay problemas?

sp_whoisactive.

Adam Machanic (SQL Server MVP y MCITP) ha desarrollado y moderado constantemente el procedimiento almacenado SP_Whooisactive, que se basa en estos más DMV y Maldición es fácil de usar. Descarga la última versión de SP_Whoisactive. En el mismo Adán, hay una serie de artículos dedicados a SP_WHOISATION, que consta de 30 (treinta!) Piezas, puedes leerlo, y trataré de interesarte al leer este material :).
Por lo tanto, supondremos que descargó y lanzó este script en uno de los servidores de prueba (en cualquier versión, desde 2005 y terminando con Denali). Adam le aconseja almacenarlo en la base de datos del sistema maestro para que pueda llamarse en el contexto de cualquier base de datos, pero no es necesario, solo cuando lo llame en el contexto de otra base de datos, debe escribir el nombre completamente - BD. sham.sp_whoisactive.
Así que inténtalo. En la captura de pantalla, el resultado de su ejecución durante la construcción de todo el mismo informe:

El resultado de la solicitud EXEC SP_WHOISATIVE, ALAS, no existe en una pantalla, por lo que la descripción del texto de la salida del procedimiento almacenado causó sin parámetros.
  • - Para una investigación activa, el tiempo de ejecución muestra para la sesión "Dormir": el tiempo "Dormir";
  • - En realidad, SPID;
  • - muestra el texto que actualmente se ejecuta ahora, o el texto de la última consulta ejecutada, si la sesión está durmiendo;
  • - Bueno, entendiste;
  • - Columna muy interesante. Se muestra en formato (AX: BMS / CMS / DMS) E. A es el número de tareas en espera en el recurso E. B / C / D: esto es el tiempo de espera en milisegundos. Si el recurso está esperando una sola sesión (como en la captura de pantalla), se mostrará su tiempo de espera si 2 sesiones son sus tiempos de espera en formato B / C. Si espera 3 o más, veremos el tiempo de espera mínimo, promedio y máximo en este recurso en formato B / C / D;
  • - Para una investigación activa, el tiempo total de la CPU, gastado por esta solicitud, para una sesión para dormir, el tiempo total de la CPU para "Toda la vida" de esta sesión;
  • - Para una consulta activa, este es el número de operaciones de grabación en TEMPDB durante la ejecución de la consulta; Para una sesión para dormir, un número total de entradas en Tempdb para toda la vida de la sesión;
  • - para una consulta activa: el número de páginas en Tempdb asignado para esta solicitud; Para una sesión para dormir, el número total de páginas en Tempdb asignó toda la vida útil de la sesión;
  • - Si de repente estamos bloqueados por alguien, SPID (Session_ID) mostrará quiénes estamos bloqueados;
  • - Para una consulta activa, el número de lecturas lógicas realizadas al ejecutar esta solicitud; Para una sesión de sueño, el número de páginas de lectura para toda la vida útil de esta sesión;
  • - todo lo mismo, pero sobre el registro;
  • - Para una consulta activa, el número de lecturas físicas realizadas al realizar esta solicitud; Para una sesión de sueño, tradicionalmente, el número total de lecturas físicas durante toda la vida útil de la sesión;
  • - Para una consulta activa, el número de páginas de ocho kilobytes utilizadas en la ejecución de esta solicitud; Para una sesión para dormir, cuántos minutos de páginas de memoria se destacaron para toda su vida;
  • - Se ejecuta el estado de la sesión, duerme, etc.;
  • - muestra el número de transacciones de la Abrir esta sesión;
  • - espectáculos si existe tal oportunidad, el proceso de funcionamiento de la operación (por ejemplo, copia de seguridad, restauración), nunca muestres la cantidad de porcentaje que se ejecuta por Select.
Las columnas restantes B. salida estándar SP_Whoisactive se ve interesante, y no los describiré: su propósito, creo que es comprensible para todos (host_name, base de datos_name, programa_name, start_time, login_time, request_id, collection_time).

¿Y qué? Es todo?

No, no es todo. También le cuento sobre lo que los parámetros (más interesantes y útiles, desde mi punto de vista) se pueden llamar SP_Whoisactive y qué funcionará.
  • @Help es un parámetro Útil terrible. Cuando llame a SP_Whoisactive @help \u003d 1, obtenemos información sobre todos los parámetros y columnas de salida en la pantalla. Entonces, si algo sigue siendo incomprensible, siempre puedes ver "ayuda"
  • @Filter_Type y @Filter: le permite filtrar el resultado de la ejecución. @Filter_Type puede aceptar "Sesión", "Programa", "Base de datos", "Inicio de sesión" y "HOST". En el parámetro, especificamos qué objeto del tipo seleccionado está interesado en nosotros. Por ejemplo, queremos ver todas las sesiones que se ejecutan en la base de datos maestra, para esto llamamos EXEC SP_Whoisactive @Filter_Type \u003d "Base de datos", \u003d "Master". El parámetro está permitido usar "%";
  • @NOT_FILTER_TYPE Y @NOT_FILTER: Permítanos filtrar "por el contrario". Aquellos, por ejemplo, queremos ver todo, excepto aquellas sesiones que en el campo de la base de datos se encuentran "Master", para esto realizamos el ejecuto sp_whoisactive @not_filter_type \u003d "base de datos", @not_filter \u003d "master". Bueno, o queremos ver que todos los usuarios excepto el usuario SA ... se pueden configurar aplicaciones. El parámetro @Not_Filter está permitido usar "%";
  • @Show_System_Spids \u003d 1 - Mostrará información sobre las sesiones del sistema;
  • @Get_full_inner_text \u003d 1 - En el campo SQL_Text, no será solo el texto de la solicitud actual (Setiment) en el paquete (BATCHE), y el texto de todo el lote es enteramente;
  • @Get_Plans: agregue a la columna de salida con planes de ejecución de consulta;
  • @Get_transaction_info \u003d 1: agrega a la salida y el volumen de registros a registros de transacciones, así como el inicio de la última transacción;
  • @Get_locks \u003d 1: agrega a la información de salida sobre todos los bloqueos impuestos durante la ejecución de la consulta;
  • @find_block_leaders \u003d 1: seguirá la cadena de bloqueo y mostrará el número total de sesiones que están esperando para desbloquear la sesión actual;
  • @Output_column_list \u003d "[%]" - ¿Qué sucede si no desea ver información sobre Tempdb en la salida de SP_Whoisactive? Con este parámetro, puede controlar el hecho de que se muestra;
  • @Destination_table \u003d "table_name": intentará insertar el resultado de la ejecución para escribir en la tabla, pero esta tabla no se verificará si es suficiente para insertarlo.

Ahora todos

Como resultado, tenemos otra herramienta extremadamente conveniente y flexible para rastrear la actividad actual en SQL Server. Para su funcionamiento normal, es bastante suficiente para resolver el estado del servidor de visualización y los derechos para apelar a DMV.
También vale la pena agregar, en el caso de que sea posible conectarse solo al servidor.

Lista de problemas de auditoría de rendimiento

Ingrese sus resultados en la tabla de arriba.

Usando el monitor de rendimiento (Monutor de rendimiento) para identificar los vehículos de hardware de SQL Server estrechos

Es mejor comenzar a auditar el rendimiento del servidor SQL desde el monitor de rendimiento (Monitor del sistema). Monitoreo de varios medidores principales por un período de 24 horas le permitirá obtener una buena idea de cualquier problema principal de hardware que afecten el rendimiento de SQL Server.

Idealmente, debe usar el monitor de rendimiento para crear un archivo de lectura de metros clave durante un período de 24 horas. Tienes que elegir un período "típico" de 24 horas para crear un archivo de registro. Por ejemplo, seleccione un día laboral típico, no el final de la semana o las vacaciones.

Tan pronto como haya grabado los datos del monitor de rendimiento en 24 horas en el archivo de registro, visualice los medidores recomendados en el modo de gráfico del monitor de rendimiento y luego anote los valores promedio, mínimo y máximo en la tabla anterior. Una vez que lo haya hecho, compare sus resultados con los resultados del siguiente análisis. Esta comparación le dará la oportunidad de determinar los posibles cuellos de botella de hardware que afecten su servidor SQL.

Cómo interpretar los contadores de monitores de rendimiento clave

Se discuten los siguientes contadores de monitores de rendimiento básicos, sus valores recomendados y algunas opciones que deben ayudar a identificar y resolver problemas de hardware. Cabe señalar que limité el número de contadores de monitores de rendimiento en consideración. Esto se hace porque el propósito de este artículo es descubrir los problemas simples y obvios de la pérdida de desempeño. La discusión de muchos otros contadores de monitores de rendimiento se puede encontrar en otros lugares de este sitio web.

Memoria: Páginas / Segundos

Este medidor mide el número de páginas por segundo, que se restablece de RAM a disco, o se leen en RAM desde el disco. Las páginas más intensivas, la carga más grande en las operaciones de E / S experimenta su servidor, que, a su vez, puede afectar adversamente el rendimiento del servidor SQL. Su objetivo es tratar de reducir las páginas al mínimo sin eliminarla.

Bajo el supuesto de que SQL Server es la única aplicación principal que se ejecuta en su servidor, este número debe estar idealmente en el intervalo entre cero y 20. Es muy probable que observe las emisiones que excedan significativamente los 20, lo cual es bastante normal. Lo principal aquí es mantener el intercambio promedio de la página por segundo menos de 20.

Si su servidor muestra un promedio de más de 20 páginas por segundo, una de las razones más probables para esta es la falta de RAM necesaria. En términos generales, el elemento más RAM es, se deben realizar las operaciones de intercambio de páginas más pequeñas.

En la mayoría de los casos, en un servidor físico especializado en SQL Server, con una cantidad adecuada de RAM, el valor de intercambio promedio de la página será inferior a 20. Un número adecuado de RAM para SQL Server se puede definir de acuerdo con el siguiente criterio: el servidor Debe tener un coeficiente exitoso a la memoria caché del búfer (tampón de tampón de caché) 99% y superior. Este medidor se describe a continuación en este artículo. Si tiene un servidor SQL, que tiene un valor de 99% o más dentro de las 24 horas, pero obtiene la página promedio que comparte más de 20 por el mismo período de tiempo, puede indicar que está ejecutando y otras. Aplicaciones sobre lo físico Servidor además de SQL Server. Si este es el caso, debe, idealmente, elimine estas aplicaciones, lo que permite que SQL Server sea la única aplicación principal en el servidor físico.

Si su servidor SQL no realiza ninguna otra aplicación, y el intercambio de páginas excede 20 en promedio dentro de las 24 horas, puede significar que cambió la configuración de la memoria del servidor SQL. Se debe configurar SQL Server para que la opción "Configurar Dinámicamente Configurar SQL Server" esté configurada (configure dinámicamente la memoria de SQL Server) y la instalación máxima de la memoria debe estar en el mayor valor. Para un trabajo óptimo, se debe permitir que SQL Server tome tantos RAM ya que se requiere para sus propias necesidades, sin experimentar la necesidad de competir por la memoria rápida con otras aplicaciones.

MEMORIA: Espacio disponible

Otra forma de averiguar si su servidor SQL tiene suficiente memoria física, es verificar el objeto de memoria: Bytes disponibles. Su valor debe ser más de 5 MB. De lo contrario, su servidor SQL necesita un mayor número de memoria física. En un servidor especializado en SQL Server, este último está tratando de mantener de 4-10 MB de memoria física libre. La RAM física restante es utilizada por el sistema operativo y SQL Server. Cuando la cantidad de memoria disponible está cerca de 5 MB o más baja, es muy probable que SQL Server experimente la sobrecarga debido a la falta de memoria. Si este es el caso, debe aumentar el número de RAM física en el servidor, reduzca la carga en el servidor o cambie la configuración para configurar la configuración de la memoria de su SQL Server, respectivamente.

Disco físico: tiempo de disco

Este contador muestra qué tan ocupado es la matriz de disco físico (no una sección lógica o un disco separado en la matriz). Proporciona una buena medida relativa de cómo se ocupan sus matrices de disco.

Como regla empírica, el contador de tiempo de disco debe mostrar menos del 55%. Si las lecturas del medidor exceden el 55% sobre períodos continuos (más de 10 minutos para sus 24 horas de monitoreo), entonces su servidor SQL puede experimentar problemas con las operaciones de E / S. Si observa este comportamiento solo ocasionalmente durante las 24 horas de monitoreo, no me preocuparía demasiado, pero si sucediera a menudo (digamos, varias veces por hora), comenzaría a buscar formas de aumentar el rendimiento de I / O Operaciones en el servidor o reduzca la carga del servidor. Algunos métodos para aumentar la entrada / salida del disco consisten en agregar nuevos discos a una matriz (si es posible), reemplazando los discos a más rápido, agregando caché en la placa del controlador (si es posible), utilizando varias versiones de RAID o instalando un controlador más rápido.

Antes de usar este medidor bajo NT 4.0, debe habilitarlo manualmente ingresando lo siguiente: "diskperf-y" en el símbolo del sistema. Después de eso, deberá reiniciar su servidor. Por lo tanto, se requiere que incluya inmediatamente los contadores de disco en Windows NT 4.0. Si trabaja en Windows 2000, este medidor está habilitado de forma predeterminada.

Disco físico: la longitud promedio de la cola de disco.

Además de observar el valor del medidor, "Disco físico: Tiempo de funcionamiento del disco", también es deseable monitorear los valores de la longitud media de la cola de disco (AVG. Longitud de la cola de disco). Si este valor excede el valor 2 para períodos continuos (durante 10 minutos durante su monitoreo de 24 horas) para cada unidad en la matriz, entonces esta matriz puede resultar un cuello de botella del rendimiento del sistema. Como un contador de tiempo de viaje, si ocurre ocasionalmente durante 24 horas de período de monitoreo, no me preocupo mucho, pero si sucede a menudo, entonces comenzaría a buscar formas de aumentar el rendimiento del sistema de entrada / salida del servidor, como se describe. sobre.

Tendrá que calcular este indicador, ya que el monitor de rendimiento no sabe cuántos discos físicos están en su matriz. Por ejemplo, si tiene una matriz de 6 discos físicos, y la longitud promedio de la cola es 10 para esta matriz, entonces el valor promedio real de la cola de disco para cada disco es 1.66 (10/6 \u003d 1.66), que está bien. en el indicador recomendado 2 por un disco físico.

Antes de usar este medidor bajo NT 4.0, no olvide encenderlo manualmente, escribiendo la invitación para ingresar los comandos de NT, lo siguiente: "DiskPerf-y" con el reinicio posterior de su servidor. Por lo tanto, debe incluir mostradores de disco inmediatamente después de instalar Windows NT 4.0. Si usa Windows 2000, este medidor se habilitará de forma predeterminada.

Use tanto el medidor descrito anteriormente para averiguar si su servidor está experimentando problemas con el sistema de E / S. Por ejemplo, si ve muchos períodos de tiempo durante el cual el tiempo de disco es más del 55%, y cuando la longitud de la cola de disco promedio es más de 2 por disco físico, puede estar seguro de que el servidor tenga problemas con el sistema de entrada.

Procesador: Tiempo de procesador%

Objeto del procesador:% El medidor de tiempo del procesador está disponible para cada procesador central y evalúa el uso de cada CPU individual. Un medidor similar también está disponible para toda la totalidad de los procesadores centrales (total). Este es un medidor clave para rastrear el uso del procesador central. Si el tiempo de carga total del procesador en este medidor supera el 80% sobre períodos continuos (más de 10 minutos durante 24 horas de monitoreo), puede considerar el procesador central con un sistema estrecho. Si estos períodos de carga fuerte ocurren ocasionalmente, y cree que puede aceptarlo, entonces todo está en orden. Pero si ocurren a menudo, debe considerar dichas opciones para reducir la carga del servidor, como la adquisición de procesadores centrales más rápidos, la instalación de procesadores más centrales, o la adquisición de procesadores centrales que tienen un caché de segundo nivel incorporado ( L2).

Sistema: Longitud de la cola del procesador

Junto con un contador de tiempo del procesador, también debe controlar el contador de longitud de la cola del procesador (longitud de la cola del procesador). Si este indicador excede el valor de 2 a un procesador central durante períodos continuos (más de 10 minutos durante su período de monitoreo de 24 horas), es probable que este sea un sistema estrecho del sistema. Por ejemplo, si tiene 4 procesadores centrales en su servidor, la longitud de la cola del procesador no debe exceder un valor total de 8.

Si la longitud de la cola del procesador supera regularmente el máximo recomendado, pero el uso de un procesador central no es tan alto (que es un caso típico), entonces considere la opción de reducir el valor del parámetro de configuración "MAX Worker Worker Works" ( Número máximo de hilos). Una posible causa de un alto valor de la longitud de la cola del procesador es la presencia de un número excesivo de trabajadores que esperan su turno. Al reducir su número que usted tiene con este parámetro, obliga a usar las cepas de los hilos (si no se lleva a cabo), o aumenta su papel.

Use ambos medidores descritos juntos para determinar exactamente si hay problemas con el procesador central. Si ambos indicadores exceden los valores recomendados durante los mismos períodos de tiempo continuos, puede estar seguro de que el procesador central sea un punto débil del sistema.

SQL Server Buffer: coeficiente de acceso exitoso a caché de búfer

Este medidor (Buffer SQL Server: Relación de éxito de caché de búfer) muestra la frecuencia con la que el servidor SQL se refiere al búfer, y no al disco duro para obtener los datos. En las aplicaciones OLTP, este coeficiente debe exceder el 90%, e idealmente debe ser superior al 99%. Si su coeficiente de contacto exitoso con caché de búfer es inferior al 90%, debe ir y comprar más RAM hoy. Si este coeficiente se encuentra en el rango entre el 90% y el 99%, debe considerar seriamente la opción de compra de RAM adicional, ya que más cerca se acerca al 99%, más rápido funcionará su servidor SQL. En algunos casos, si su base de datos es muy grande, no podrá acercarse al 99%, incluso si pone el número máximo permitido de RAM en su servidor. Luego, todo lo que puede hacer es agregar memoria al máximo y aceptar la posición existente de las cosas.

En las aplicaciones OLAP, el coeficiente puede ser mucho más pequeño debido a la naturaleza de esta aplicación OLAP. En cualquier caso, el aumento en la RAM debe acelerar la operación del servidor SQL.

SQL Server: Conexiones personalizadas

Dado que la cantidad de usuarios del servidor SQL afecta su rendimiento, se recomienda monitorear las conexiones personalizadas (SQL Server General Statistics Objeto: contador de conexiones de usuario). Muestra el número de conexiones de usuario, y no el número de usuarios que están conectados a SQL Server en este momento.

Si las lecturas de este contador exceden 255, debe aumentar el valor del parámetro de configuración de "subprocesos de trabajadores máximo" (número máximo de subprocesos de trabajo), cuyo valor predeterminado es 255. Si el número de conexiones excede el número existente de Temas de trabajo, el SQL Server comenzará a compartir los hilos de trabajo, lo que puede afectar negativamente el rendimiento. La configuración de este parámetro debe ser más alta que el número máximo de conexiones que se pueden lograr en su servidor.

Que sigue

Aunque hay un número mucho mayor de contadores que los que hemos considerado, estos últimos son clave para monitorear, que se realiza en el proceso de desempeño de la auditoría. Después de completar el análisis del monitor de rendimiento, use las recomendaciones dadas y luego en esta serie de artículos para realizar los cambios necesarios que hacen que su servidor SQL funcione como debería.

Cualquier administrador de la base de datos, seguro, tenía que lidiar con el hecho de que todo funciona lentamente, o no funciona en absoluto. Lo primero que debe averiguar es que esto suceda en SQL Server en este momento. Parecería en el arsenal del administrador, muchas de todas las piezas útiles: un monitor de actividad de BUVA, un montón de puntos de vista dinámicos (DMV), SP_WHO y SP_WHO2 procedimientos almacenados, que permanecieron heredados desde SQL Server 7 y SQL Server 2000.
Pero veamos ...

Herramientas de monitoreo

Monitor de actividad

Parecería, una gran cosa, está comprometida en el hecho de que es necesario: la actividad es monitoreada. Lanzamiento un informe de contabilidad pesado y veo qué monitor de actividad me mostrará.
En Screenshots Activity Monitor de SQL Server 2005:

y de SQL Server Denali (2012) CTP 3.


M-sí. ¿Y si una docena de personas lanzará tales informes? Y esto no es poco frecuente ... será bastante incómodo entender, aunque, por supuesto, progresar en la cara. En Denali Activity Monitor, muestra información mucho más útil (por ejemplo, sobre lo que está sucediendo la expectativa de recursos en particular), además, podemos, por ejemplo, para la sesión deseada, ejecutar un perfilador directamente desde el monitor y seguirlo ya en el Profilador, pero, dañe, se carga adicionalmente y cargas y sin el servidor cargado. Además, ya existe un problema con los frenos, y las solicitudes que en el momento de lanzar un perfilador ya han comenzado a ser realizadas, no veremos.
Y quiero ver esto, quién y qué lo hace ahora.

sP_WHO y SP_WHO2.

En la captura de pantalla, el resultado de la ejecución de SP_WHO (desde arriba) y SP_WHO2 (parte inferior) realizada durante la construcción de todo el informe a largo plazo:


Si. Muy informativo. Mirando a SP_WHO solo podemos ver lo que está ejecutando algo. Por supuesto, se realiza, somos para ello y vemos, y vemos que se realiza algo de selección. O unos pocos selectos "Ov. Genial.
sP_WHO2 muestra más información. Ahora podemos ver cuánto tiempo de procesador pasó la sesión (y la columna plegó el tiempo total, aparentemente), el número de operaciones de E / S, el nombre de la base de datos en la que se realiza todo esto y quién está bloqueado por esta sesión ( Si está bloqueado).
El monitor de actividad, como vemos, da más información.

Dmv

Comenzando con SQL Server 2005, recibimos una nueva oportunidad para recibir información sobre el estado del servidor - Vistas de administración dinámica. MSDN dice: "Representaciones administrativas dinámicas y funciones devuelven los datos de estado del servidor que se pueden usar para controlar la salud de la instancia del servidor, el diagnóstico de problemas y la configuración de rendimiento".
Y, de hecho, en el 2005º SQL Server "E hay un conjunto de opiniones relacionadas con la ejecución de solicitudes en el momento actual (sin embargo, para ver la" historia ", también hay actuaciones): aquí están. Y su número de La versión a la versión continúa aumentando!
Seguramente, los administradores de masilla tienen muchos scripts, lo que le permite obtener información sobre el estado actual del servidor, pero ¿qué hacer si la experiencia de trabajar con DMV aún no está aún, pero ya hay problemas?

sp_whoisactive.

Adam Machanic (SQL Server MVP y MCITP) ha desarrollado y moderado constantemente el procedimiento almacenado SP_Whooisactive, que se basa en estos más DMV y Maldición es fácil de usar. Descarga la última versión de SP_Whoisactive. En el mismo Adán, hay una serie de artículos dedicados a SP_WHOISATION, que consta de 30 (treinta!) Piezas, puedes leerlo, y trataré de interesarte al leer este material :).
Por lo tanto, supondremos que descargó y lanzó este script en uno de los servidores de prueba (en cualquier versión, desde 2005 y terminando con Denali). Adam le aconseja almacenarlo en la base de datos del sistema maestro para que pueda llamarse en el contexto de cualquier base de datos, pero no es necesario, solo cuando lo llame en el contexto de otra base de datos, debe escribir el nombre completamente - BD. sham.sp_whoisactive.
Así que inténtalo. En la captura de pantalla, el resultado de su ejecución durante la construcción de todo el mismo informe:

El resultado de la solicitud EXEC SP_WHOISATIVE, ALAS, no existe en una pantalla, por lo que la descripción del texto de la salida del procedimiento almacenado causó sin parámetros.

  • - Para una solicitud activa, muestra el tiempo de ejecución, para la sesión "Dormir": el tiempo "Dormir";
  • - En realidad, SPID;
  • - muestra el texto que actualmente se ejecuta ahora, o el texto de la última consulta ejecutada, si la sesión está durmiendo;
  • - Bueno, entendiste;
  • - Columna muy interesante. Se muestra en formato (AX: BMS / CMS / DMS) E. A es el número de tareas en espera en el recurso E. B / C / D: esto es el tiempo de espera en milisegundos. Si el recurso está esperando una sola sesión (como en la captura de pantalla), se mostrará su tiempo de espera si 2 sesiones son sus tiempos de espera en formato B / C. Si espera 3 o más, veremos el tiempo de espera mínimo, promedio y máximo en este recurso en formato B / C / D;
  • - Para una investigación activa, el tiempo total de la CPU, gastado por esta solicitud, para la sesión para dormir, el tiempo total de la CPU para "toda la vida" de esta sesión;
  • - Para una consulta activa, este es el número de operaciones de grabación en TEMPDB durante la ejecución de la consulta; Para una sesión para dormir, un número total de entradas en Tempdb para toda la vida de la sesión;
  • - para una consulta activa: el número de páginas en Tempdb asignado para esta solicitud; Para una sesión para dormir, el número total de páginas en Tempdb asignó toda la vida útil de la sesión;
  • - Si de repente estamos bloqueados por alguien, SPID (Session_ID) mostrará quiénes estamos bloqueados;
  • - Para una consulta activa, el número de lecturas lógicas realizadas al ejecutar esta solicitud; Para una sesión de sueño, el número de páginas de lectura para toda la vida útil de esta sesión;
  • - todo lo mismo, pero sobre el registro;
  • - Para una consulta activa, el número de lecturas físicas realizadas al realizar esta solicitud; Para una sesión de sueño, tradicionalmente, el número total de lecturas físicas durante toda la vida útil de la sesión;
  • - Para una consulta activa, el número de páginas de ocho kilobytes utilizadas en la ejecución de esta solicitud; Para una sesión para dormir, cuántos minutos de páginas de memoria se destacaron para toda su vida;
  • - Se ejecuta el estado de la sesión, duerme, etc.;
  • - muestra el número de transacciones de la Abrir esta sesión;
  • - espectáculos si existe tal oportunidad, el proceso de funcionamiento de la operación (por ejemplo, copia de seguridad, restauración), nunca muestres la cantidad de porcentaje que se ejecuta por Select.

Las columnas restantes B. salida estándar SP_Whoisactive se ve interesante, y no los describiré: su propósito, creo que es comprensible para todos (host_name, base de datos_name, programa_name, start_time, login_time, request_id, collection_time).

¿Y qué? Es todo?

No, no es todo. También le cuento sobre lo que los parámetros (más interesantes y útiles, desde mi punto de vista) se pueden llamar SP_Whoisactive y qué funcionará.

  • @Help es un parámetro Útil terrible. Cuando llame a SP_Whoisactive @help \u003d 1, obtenemos información sobre todos los parámetros y columnas de salida en la pantalla. Entonces, si algo sigue siendo incomprensible, siempre puedes ver "Ayuda"
  • @Filter_Type y @Filter: le permite filtrar el resultado de la ejecución. @Filter_Type puede aceptar "Sesión", "Programa", "Base de datos", "Inicio de sesión" y "HOST". En el parámetro @Filter, especificamos qué objeto del tipo seleccionado nos interesa. Por ejemplo, queremos ver todas las sesiones que se ejecutan en la base de datos maestra, para esto llamamos EXEC SP_WHOISActive @Filter_Type \u003d "Base de datos", @Filter \u003d "Master". El parámetro @filter está permitido usar "%";
  • @NOT_FILTER_TYPE Y @NOT_FILTER: Permítanos filtrar "por el contrario". Aquellos. Por ejemplo, queremos ver todo, a excepción de esas sesiones, que en el campo "Base de datos" es "Master", para esto, EXECUTE EXEC SP_WHOISActive @Not_Filter_Type \u003d "Base de datos", @Not_Filter \u003d "Master". Bueno, o queremos ver que todos los usuarios excepto el usuario SA ... se pueden configurar aplicaciones. El parámetro @Not_Filter está permitido usar "%";
  • @Show_System_Spids \u003d 1 - Mostrará información sobre las sesiones del sistema;
  • @Get_full_inner_text \u003d 1 - En el campo SQL_Text, no será solo el texto de la solicitud actual (Setiment) en el paquete (BATCHE), y el texto de todo el lote es enteramente;
  • @Get_Plans: agregue a la columna de salida con planes de ejecución de consulta;
  • @Get_transaction_info \u003d 1: agrega a la salida y el volumen de registros a registros de transacciones, así como el inicio de la última transacción;
  • @Get_locks \u003d 1: agrega a la información de salida sobre todos los bloqueos impuestos durante la ejecución de la consulta;
  • @find_block_leaders \u003d 1: seguirá la cadena de bloqueo y mostrará el número total de sesiones que están esperando para desbloquear la sesión actual;
  • @Output_column_list \u003d "[%]" - ¿Qué sucede si no desea ver información sobre Tempdb en la salida de SP_Whoisactive? Con este parámetro, puede controlar el hecho de que se muestra;
  • @Destination_table \u003d "table_name": intentará insertar el resultado de la ejecución para escribir en la tabla, pero esta tabla no se verificará si es suficiente para insertarlo.

Ahora todos

Como resultado, tenemos otra herramienta extremadamente conveniente y flexible para rastrear la actividad actual en SQL Server. Para su funcionamiento normal, es bastante suficiente para resolver el estado del servidor de visualización y los derechos para apelar a DMV.
También vale la pena agregar, en el caso de que sea posible conectarse solo al servidor.

Este producto de software es Sybase, trabajando con SQL Server y emitiendo una variedad de información sobre el rendimiento del servidor en forma gráfica. Esta información es excepcionalmente útil al analizar las razones para reducir su rendimiento.

la versión 11.0.1 tiene una serie de nuevas oportunidades importantes que distinguen significativamente la nueva versión de todos los anteriores. 11.0.1 puede funcionar con cualquier versión de SQL Server, comenzando con 4.9.2 y sistema final 11.

Sin embargo, algunos de los tipos de información más interesantes sobre la naturaleza del uso de los objetos de la base de datos y la interacción del servidor con la red se emiten solo cuando se monitorea el sistema SQL Server 10 y el sistema 11. Naturalmente, datos sobre la operación de los buffers de caché nombrados Se emite solo cuando se controla el rendimiento del sistema SQL Server 11.

Para la compatibilidad con versiones anteriores 11.0.1 también admite el modo de emisión de información estadística sobre el rendimiento del servidor a los archivos que se pueden usar para la comparación y el análisis posteriores. Esta oportunidad es muy útil en la práctica, pero su uso complica el proceso de instalación.

consta de dos componentes: un módulo de servidor que se ejecuta en una sola máquina con SQL Server para proporcionar acceso al área de memoria del servidor compartido, y un módulo de cliente que es capaz de trabajar en cualquier computadora. La tarea principal del módulo cliente está leyendo la información acumulada por el módulo del servidor y su presentación por parte del usuario en forma gráfica.

Al comenzar, debe cancelar la verificación de la memoria del servidor realizada por el comando DBCC Morusage, ya que este comando ralentiza significativamente la operación del servidor. Para hacer esto, al iniciar SQLMON (Módulo de cliente), debe especificar el parámetro NOMEM.

La configuración predeterminada proporciona conexión simultánea a cinco módulos de cliente a un módulo de servidor. En otras palabras, puede conectarse a un módulo de servidor o cinco módulos de cliente con una ventana en cada cliente, o un cliente con cinco ventanas abiertas.

El número máximo de al mismo tiempo, los clientes abiertos se instalan cuando se inicia el módulo del servidor.

Por lo tanto, para admitir 20 ventanas en el archivo de comando del módulo del servidor, debe especificar el parámetro P2 0. Esto requerirá un cambio en la dirección del área de memoria del servidor seleccionada utilizando el comando BuildMaster y algunas otras acciones. Estas acciones no se pueden realizar durante la operación de SQL Server. (Detalles sobre el proceso de expandir el número de clientes simultáneamente compatibles, consulte el Manual del Módulo del Servidor Suplemento del servidor).

tiene algunos inconvenientes. Por ejemplo, un gráfico de barras que muestra el número de operaciones de E / S y otras características de los dispositivos de servidor es capaz de informar los datos simultáneamente solo por un número de dispositivo limitado.

Esto es inconveniente al monitorear un servidor grande con una gran cantidad de dispositivos de servidor. Además, el usuario no puede seleccionar dispositivos, información sobre la cual se incluirá en el diagrama, así como el cambio entre diferentes conjuntos de dispositivos.

La tabla de texto aparece en la pantalla simultáneamente con el diagrama contiene una lista de todos los dispositivos de servidor, pero incluye solo el número total de operaciones de E / S para cada una de ellas. Esto hace que sea difícil trabajar con un servidor grande, en el que se han creado muchos dispositivos de servidor que admiten segmentos de la base de datos de usuarios para aumentar su rendimiento. En este caso, el análisis del trabajo de todos los segmentos disponibles es imposible.

tampoco permite que durante mucho tiempo muestre la dinámica de los cambios en los indicadores de rendimiento.

Es capaz de enviar datos en la pantalla por 60 intervalos de medición de rendimiento consecutivos. Dependiendo de la duración seleccionada de cada intervalo, dichas estadísticas pueden cubrir un período de tiempo bastante grande. Sin embargo, esta recepción no permite comparar los datos actuales con indicadores de una limitación mensual o anual.

Por supuesto, las imágenes de las ventanas del programa se pueden emitir a la impresora, pero luego tiene que almacenar conjuntos de archivos o impresiones de montaña para evaluar el rendimiento del servidor futuro. En la práctica, el administrador del servidor a menudo tiene que volver a ver los datos obtenidos en varios períodos del ciclo comercial de la empresa, así como comparar información sobre los mismos períodos de ciclos de negocios en serie para obtener una idea del rendimiento real del servidor. .

Dado que el lanzamiento conduce a una sola desaceleración del servidor, antes del inicio de las mediciones, es necesario determinar el valor de esta desaceleración para una plataforma de hardware y software en particular. Un buen método de medición es la ejecución de un conjunto estándar de transacciones de prueba.

Se puede utilizar tanto en la presencia como en ausencia de la máquina del servidor. Incluso si no hay módulos de cliente, el módulo del servidor de programas continúa su funcionamiento, y debe ser detenido por un comando separado.

le permite producir varias ventanas gráficas en la pantalla, cada una de las cuales contiene información sobre un aspecto específico del funcionamiento del servidor.

Ventana principal (ventana principal)
Contiene una lista de Windows compatible con el programa. En el caso de que cuando se inicie el módulo del cliente de Sglmon, el parámetro NOMEM no se especificó, también se emitirá el diagrama del circuito de la memoria de la máquina del servidor en esta ventana.

Buffers de caché (caché)
En esta ventana, se emiten gráficos, caracterizando el trabajo de buffers de caché de procedimientos y datos. Al controlar el número de operaciones de E / S físicas y lógicas en el búfer de datos, el usuario puede determinar qué parte de los datos a las páginas de datos se realizará utilizando páginas ya ubicadas en el búfer. Dichas estadísticas obtenidas por el tampón de datos y el tampón de procedimientos le permiten determinar la cantidad total de memoria requerida por los buffers de caché del servidor y la relación entre los buffers y los procedimientos de datos.

Datos de búfer de caché solo para SQL Server System 11 (Data Cach)
La ventana reporta el número de operaciones de E / S físicas y lógicas para cada uno de los buffers de caché nombrados configurados en el servidor.

Entrada / salida del disco (dispositivo E / S)
Aquí están las tablas de gráficos y resumen en el número actual y total de apelaciones a los discos. Ayudan a optimizar la distribución de carga de E / S entre dispositivos de servidor disponibles. Al analizar la información emitida, es útil usar el diagrama estándar de seleccionar los nombres de los dispositivos de servidor mediante nombres de las particiones correspondientes de los discos físicos, ya que al observar el tipo de cambio con los dispositivos del servidor, debe saber cómo cada uno de estos dispositivos es conectado a qué controlador de disco.

Trabajar con la red, solo para SQL Server System 10 y 11 (Actividad de red)
La ventana se informa a la información estadística en la entrada de la red "Salida: el tamaño de los paquetes, el volumen de tráfico, etc.

Bloquee el acceso a los objetos solo para el sistema SQL Server 10 y 11 (estado de bloqueo de objetos)
Proporciona información sobre el bloqueo de datos a las tablas de datos, que incluyen una distribución detallada de los tipos de bloqueos utilizados, los nombres de los procesos que mantienen la cerradura, etc.

Introducción de páginas de objetos solo para SQL Server System 10 y 11 (Página de objeto E / S)
La ventana contiene información sobre la intensidad de los portús de E / S de una de las tablas de datos del servidor. Preste atención a la efectividad al elaborar una lista de las tablas de servidores más frecuentemente utilizadas. Dicha información no es emitida por el procedimiento SP_SYSMON.

RESUMEN DE RENDIMIENTO (RENDIMIENTO)
Aquí, se presenta una imagen general de la función SQL Server: se presenta el porcentaje del tiempo del procesador, la cantidad de transacción procesada por segundo, la cantidad de tráfico de red, I / O del disco, así como la intensidad del uso de las cerraduras. .

Dinámica de indicadores de desempeño (tendencia de rendimiento)
Los gráficos continuos de los indicadores de limitacion de tiempo emitidos en la ventana Resumen de rendimiento se construyen en la ventana.

Actividad del proceso del servidor (proceso de proceso)
La ventana le permite seleccionar uno o más procesos de servidor y seguir el uso del procesador y los volúmenes de E / S para cada uno de los procesos.

Detalles detallados del proceso (detalle del proceso)
La ventana contiene información detallada sobre el proceso de servidor seleccionado.

Lista de procesos (lista de procesos)
La ventana contiene una lista de todos los procesos de servidor disponibles actualmente que indican su estado. Muy similar a la emisión del comando SP_WHOVER Server.

Uso de cerraduras (actividad de bloqueo de proceso)
La ventana emite información sobre el uso de los bloqueos al proceso del servidor que seleccionó.

Usando procedimientos almacenados (actividad de procedimiento almacenado)
La ventana contiene información sobre la ejecución de los procedimientos almacenados y el tiempo de operación de cada procedimiento.

Transacción de transacción (actividad de transacción)
En la ventana, puede ver un gráfico de columnas que muestra la cantidad de distribución procesada por transacciones por varios tipos de transacciones. Puede ver, por ejemplo, qué parte de las transacciones se puede realizar utilizando el mecanismo de actualización en el sitio (actualización en su lugar).

12.26.2006 Kevin Kine

¿Qué menos pregunta le gustaría obtener el administrador de la base de datos? Probablemente un mensaje del usuario sobre el deterioro de la solicitud o la pregunta de lo que sucedió con la base de datos. Es necesario posponer todos los casos e ir al "modo de emergencia", adivinar, ya sea durante mucho tiempo. Dado que una de las principales responsabilidades del administrador de la base de datos es garantizar el funcionamiento cualitativo de las bases de datos industriales, sigue siendo solo para eliminar rápidamente el mal funcionamiento. Tiempo para averiguar la causa del fracaso, como regla general, no.

Más Sin Avrals - Sólo observación sistemática.

¿Pero es esto lo único que se puede hacer? Es posible realizar un monitoreo de rendimiento proactivo, un procedimiento de gestión simple que utiliza la definición de los parámetros básicos del sistema, que recibe estándares y observación continua. En este artículo, le diré cómo aplicar el monitoreo proactivo y cómo crear un sistema de control gratuito utilizando el monitor del sistema de Windows.

Monitoreo proactivo

El monitoreo de rendimiento proactivo es un sistema simple que le permite resolver problemas antes de que se vuelvan críticos. Alguien probablemente ya utiliza la observación de situaciones excepcionales cuando se crean procesos automatizados que solo notan las desviaciones de la norma, pero no proporcionan información profunda y no brindan oportunidades para evitar problemas. El monitoreo de rendimiento proactivo, por el contrario, proporciona al usuario todo tipo de información sobre el entorno de trabajo y las aplicaciones, y a corto plazo, y a largo plazo. Se eliminan las lecturas de los contadores de características de la base de datos, se establecen métricas de referencia y se admite el modo de vigilancia activa.

Como su nombre lo indica, el monitoreo de rendimiento proactivo requiere acciones. Es necesario pasar algún tiempo en la instalación y algún tiempo para comprender el funcionamiento de las bases de datos y las aplicaciones. Para que el monitoreo de rendimiento proactivo sea efectivo, debe ver los mensajes, por lo que es posible utilizar datos recolectados extensos.

Parámetros básicos, estándar, monitor

Empecemos con la definición de varios términos. Parámetros de referencia (línea de base) - Este es un conjunto de parámetros que muestran el comportamiento del servidor y las aplicaciones en condiciones normales. Los parámetros básicos se obtienen como promedio para los resultados de varias mediciones realizadas en las mismas condiciones; Son directrices de referencia.

Punto de referencia Muestra el rendimiento del sistema a un cierto nivel de carga del servidor, lo que le permite comparar el rendimiento de un servidor industrial a dicho nivel y determinar los indicadores del servidor cuánto son más altos o por debajo de la norma (es decir, cuando el servidor funciona mal). Al igual que con los parámetros básicos, los valores de los estándares se eliminan en un entorno controlado, los valores clave se determinan en relación con los indicadores predefinidos. Si necesita ver cómo se comportan el servidor y la solicitud en varios niveles o tipos de descarga, se obtienen varios valores de referencia (con respecto a los parámetros básicos).

Monitoreo (Monitoreo) - Esta es una vigilancia programada en el servidor en tiempo real en condiciones predefinidas (conjuntos de condiciones definidas para nuevas investigaciones o advertencias). Por ejemplo, si necesita averiguar cuánto tiempo se necesita una buena ejecución de una aplicación empresarial importante, ¿cuánto tiempo se logra la copia de seguridad y cuándo se logran ciertos valores de rendimiento, entonces se monitorea la observación?

Ahora nos ocuparemos de monitoreo proactivo. Puede usar productos de terceros o una solución gratuita que utiliza el monitor del sistema. Las decisiones de las empresas de terceros pueden simplificar el proceso de ajuste de monitoreo proactivo y tener funciones distintas a las que pueden proporcionar una solución integrada gratuita. Pero antes de comenzar, mostraré cómo proceder a realizar un monitoreo proactivo utilizando el monitor del sistema.

Paso 1: Determine los parámetros de rendimiento básicos.

En el primer paso para garantizar el modo de control del monitoreo proactivo, se establece un conjunto de parámetros básicos del servidor de la base de datos. Este conjunto indica el rendimiento del servidor en condiciones normales, ayuda a documentar y comprender todos los procesos de fondo significativos, también ayuda a designar situaciones que no requieren intervenciones para no prestarle atención. En otras palabras, los administradores de la base de datos pueden determinar las opciones para ignorar los mensajes del sistema, ya que de lo contrario se forman una gran cantidad de notificaciones falsas.

Para mostrar visualmente la calidad del funcionamiento, los mejores parámetros básicos usan algunos gráficos (idealmente uno) para que a primera vista pueda ver cómo funciona el servidor. Cuando se definen los parámetros básicos, debe hacer lo siguiente. Primero, seleccione una opción para guardar los datos de rendimiento en el registro del sistema o la visualización de tiempo real. Ideal para tener ambas oportunidades: los registros de registro le permiten volver a las lecturas en cualquier momento para analizar qué productividad fue cuando no se realizó el monitoreo directo del sistema. El monitoreo en tiempo real no ocupa un espacio de trabajo en los recursos del disco y del servidor, pero requiere un sistema del 100 por ciento de la atención. En segundo lugar, es necesario determinar el intervalo a través de la cual se llevará a cabo la observación, dado los costos de desempeño para la recopilación de datos y la operación de E / S y evaluar los costos del espacio deseado. Cuanto mayor sea el intervalo, mayor será la probabilidad de que no se obtendrán los datos de productividad que le interesen. Y finalmente, seleccione Monitoreo local o remoto. Monitoreo local en el que el proceso de monitoreo utiliza un servidor controlado, agrega costos no productores al procesador y el disco del servidor. El monitoreo remoto que utiliza un servidor separado puede deshacerse de tales problemas, pero esto aumenta enormemente la carga de trabajo en la red.

En la lista de métricas de monitor de sistema o contadores que se recomiendan para determinar los parámetros básicos. No puedo decir cuál es el valor "correcto" en el contexto de una aplicación separada, ya que varía del sistema al sistema. Use el valor promedio de varios parámetros básicos para instalar el rendimiento habitual (por parámetros de base) y designar que esta opción es correcta para el sistema operativo.

Definición de parámetros básicos utilizando el monitor del sistema.

Ahora, con el propósito de recopilar parámetros básicos, llame al monitor del sistema. Panel de control abierto, herramientas administrativas, rendimiento. Haga doble clic en los registros de rendimiento y alertas en el panel izquierdo. Presione el botón derecho en los registros de contador y especifique la configuración de registro nueva. Ingrese el nombre para el gráfico, luego haga clic en Aceptar. En el cuadro de diálogo Seleccionar contadores, seleccione el primer contador, luego haga clic en Agregar. Repita estas operaciones hasta que se agreguen todos los contadores, luego haga clic en Cerrar.

Para empezar, intente el intervalo predeterminado de 15 segundos. O seleccione otro intervalo presionando las propiedades (o use la tarjeta de acceso directo CTRL + Q), y luego ingrese el valor debajo de la señalización de la muestra automáticamente cada: _ segundos. Sin embargo, los intervalos más largos ocupan menos espacio, proporcionan datos menos detallados.

Seleccione la tabla de archivos de registro y determine la ubicación donde se almacenarán los datos. Es posible ver los datos más adelante utilizando la vista Vista de datos de archivo de registro. El monitor del sistema se verá como en la pantalla 1 cuando recaque los datos de los parámetros de rendimiento básicos. Se puede ver que al tiempo que rastrean una variedad de medidores, puede recopilar muchos datos, por lo que debe seleccionar con cuidado con los medidores para la línea principal.

Paso 2: Configuración de valores de referencia

Después de instalar los parámetros de rendimiento del servidor básico, puede comenzar a instalar valores de referencia, lo que facilita la comprensión del rendimiento del servidor cuando se trabaja en varias situaciones predeterminadas.

Para las normas, se utiliza el mismo modo de monitoreo para determinar los parámetros básicos. Puede usar su solución o una de las herramientas industriales comunes, como TPC-C o SAP, pero los mejores resultados del cálculo de los valores de referencia se obtienen al desarrollar escenarios individuales convencionales, que están configurados para usar un servidor de base de datos específico y sus aplicaciones.

Puede crear su propio escenario utilizando el conjunto de scripts de T-SQL, utilidades OSQL o Analizador de consultas, Profilador SQL y Monitor del sistema. El desarrollo de escenarios de prueba de carga en T-SQL generalmente toma varios días. Incluso más tiempo puede ser necesario recopilar la ejecución de las pruebas de carga y el análisis de los datos obtenidos.

Después de determinar los parámetros básicos del rendimiento del servidor con cargas predeterminadas, será posible saber qué se puede esperar del sistema. Use los datos recopilados al recibir valores de referencia para formar la base de la observación planificada. Por ejemplo, resultó que el servidor puede proporcionar hasta 249 transacciones por segundo, antes de que su trabajo comience a disminuir la velocidad. En este caso, puede instalar una notificación de baja prioridad cuando el servidor llegue a la descarga de aproximadamente 200 TPS y la notificación con una alta prioridad cuando el servidor alcanza los 235 TPS. Este método permitirá al administrador conocer posibles problemas con el servidor y tomar las medidas necesarias antes de que los usuarios noten cualquier cosa. Y ninguna situaciones críticas. Ahora es posible.

Paso 3: Monitoreo planificado

Quizás el componente más importante del modo de monitoreo proactivo se planifica el monitoreo. Sin él, es imposible seguir el funcionamiento de la base de datos o detectar problemas en el rendimiento.

Puede crear una herramienta de bajo costo para monitorear SQL Server utilizando una combinación de SQL Server Agent y Monitor del sistema. SQL Server Agent le permite determinar qué salida de evento al monitor, establece, quien recibe un error sobre los eventos y envíe automáticamente una notificación cuando aparezca un evento de error.

La instalación de SQL Server Agent puede ser mucho tiempo y desafiante, por lo que será necesario referirse a la sección Descripción de las alertas en SQL Server Libros en línea (BOL). El agente de SQL Server típicamente lleva a cabo el control actual de los mensajes de error de operación del servidor de la base de datos y no controla la ejecución.

El monitor del sistema se usa para monitorear el rendimiento del servidor para monitorear los medidores actuales (configure la frecuencia de la encuesta hasta 15 minutos).

Páginas de memoria / seg.

Interfaz de red-bytes TOTAL / SEC

Traslados físicos de disco de disco / seg.

Tiempo del procesador del procesador.

SQLSERVER: MÉTODOS DE ACCESO: escaneo completo / seg

SQLSERVER: Buffer Manager-Buffer Cache Hit Ratio

SQLSERVER: BASES DE DATOS DE DATOS DE BASE DE DATOS-TRANSACCIONES / SEC

SQLSERVER: Estadísticas generales: Nacciones de usuario

SQLSERVER: Latches-Promedio Pestillo Tiempo de espera

SQLSERVER: Tiempo de espera de bloqueo promedio

SQLSERVER: Tiempo de espera de bloqueo / seg.

SQLSERVER: Cerraduras-Número de puntos muertos / seg

SQLSERVER: GAIR DE MEMORIA-MEMORIA DE MEMORIA PENDIENTES PENDIENTES

Establezca el valor de cada contador entre los valores de los parámetros básicos y los valores de referencia que se muestran. Por ejemplo, puede establecer una notificación cuando el medidor alcance el 75 por ciento del valor de carga más alto, y el mensaje de advertencia cuando pasa el 90 por ciento.

Para realizar advertencias, puede usar herramientas gratuitas, como las alertas y notificaciones de SQL Server, monitor de sistema o comprar Microsoft Operations Manager (mamá) u otros medios. Recomiendo establecer advertencias al menos para las siguientes situaciones:

  • errores que afectan la operación, especialmente los errores con un indicador de importancia de 19 a 25
  • cerrar con llave
  • usando el procesador
  • disco de uso
  • escaneo (SQLSERVER: Métodos de acceso)

Puede enviar alarmas para notificar a los administradores por correo electrónico, buscapersonas o red. Puede instalar advertencias automatizadas para los siguientes mensajes:

  • sQL Server Journal
  • revista SQL Agent
  • windows, seguridad y sistema
  • registro de ejecución del trabajo SQL Server

Finalmente, es necesario asegurarse de que sus propias aplicaciones de desarrollo registren correctamente los errores y, además, responda a los mensajes de error de otras aplicaciones desarrolladas.

El monitoreo proactivo del rendimiento SQL Server significa la definición de parámetros de rendimiento básicos tanto para el servidor como para la aplicación; Instalación de valores de referencia que simulan el funcionamiento del servidor de acuerdo con el escenario predeterminado utilizado y ejecutando un monitoreo programado, lo ideal para iniciar una advertencia cuando se detecta el problema. Independientemente de si se usan herramientas gratuitas o incorporadas o se seleccionan soluciones de empresas independientes, la presencia de garantías de control que recibirá la información necesaria sobre la operación de sus aplicaciones en el servidor SQL en el momento deseado.

Tabla 1. Objetos y medidores de monitores del sistema para determinar los parámetros básicos
Objeto y contador Descripción
Páginas de memoria / seg.El número de páginas de lectura o escribiendo en el disco por segundo. Este medidor es el indicador de tipo de error principal causado por retrasos sistémicos o problemas de rendimiento.
Interfaz de red-bytes TOTAL / SECEl número de bytes que pasan a través de la interfaz de red por segundo. Cuando el indicador de este medidor disminuye o tiene tal tendencia, esto indica que los problemas de la red pueden influir en la aplicación.
Traslados físicos de disco / secEvaluación de operaciones de disco de lectura / escritura. Instale el medidor para cada disco físico en el servidor
Tiempo del procesador del procesador.El porcentaje del tiempo que el procesador pasa la ejecución del flujo de trabajo. Este contador funciona como un indicador de actividad del procesador principal. Si todos los procesadores que se ejecutan en SQL Server muestran un uso del cien por ciento, las solicitudes de usuario final probablemente se ignoran
SQLSERVER: MÉTODOS DE ACCESO: escaneo completo / segNúmero de tablas o análisis de índice completados ilimitados por segundo. Bajando los valores de este medidor para mejor porque las vistas suelen causar la falta de recursos del problema del almacenamiento en caché
SQLSERVER: Buffer Manager-Buffer Cache Hit RatioPorcentaje de páginas que no requerían la lectura del disco. Cuanto mayor sea su número, más pequeño se realiza la entrada / salida en el disco. En un sistema bien ajeno, este valor debe ser 80 o superior.
SQLSERVER: Bases de datos - Crecimientos de registroPor lo tanto, para una base de datos específica, el archivo de transacción ha crecido. En un sistema bien sintonizado, el valor de este contador debe ser bajo, probablemente menos de uno en unos días
SQLSERVER: BASES DE DATOS DE DATOS DE BASE DE DATOS POR POR POR POR POR POR PULSO UTILIZADOPorcentaje de espacio libre en el archivo de registro. Este contador variará, pero no debe alcanzar los 100.
SQLSERVER: BASES DE DATOS DE DATOS DE BASE DE DATOS-TRANSACCIONES / SECEl número de transacciones confirmadas en la base de datos. Estos tiempos de contador bajaban en los estándares. Mire cuando las transacciones comienzan a alinearse, esto indica que la entrada / salida del disco puede ser lenta
SQLSERVER: Latches-Promedio Pestillo Tiempo de esperaEl tiempo promedio de retardo de la consulta antes de llenar. Este valor del contador puede ser alto cuando el servidor enfrenta la rivalidad para los recursos, especialmente para la memoria o para la entrada / salida
SQLSERVER: Tiempo de espera de bloqueo promedio, Waits de bloqueo / seg, número de puntos muertos / segLos bloqueos temporales tienen recursos de SQL Server. Observe la tendencia ascendente de este bloqueo del conector, lo que indica un posible problema de productividad
SQLSERVER: Estadísticas generales-Conexiones de usuarioEl número de conexiones personalizadas al servidor de la base de datos. Revise los cambios notables en el valor de este contador. Pueden indicar problemas de red e indicar cargas y desaceleración.
SQLSERVER: GAIR DE MEMORIA-MEMORIA DE MEMORIA PENDIENTES PENDIENTESEl número actual de procesos que esperan la provisión de espacio de memoria. El valor alto o en crecimiento puede indicar una memoria insuficiente.
SQLSERVER: Consulta establecida por el usuario (una consulta de trazador)Medidor especializado, también conocido como puntero de consulta. Este medidor es una solicitud creada por el usuario que indica la velocidad total o la eficiencia del sistema. Para establecer este valor, la aplicación llama SP_USER_COUNTER1 y devuelve un valor numérico.