Creación de SQL Server Performance Baseline Monitoring


8

Para obtener una visión general y datos comparables, mi tarea actual es crear una línea de base de rendimiento para obtener algunas cifras sobre las diferentes instancias productivas de SQL Server.

Mis pensamientos son:

  • Quiero usar varios DMV
  • Quiero incluir un seguimiento del generador de perfiles (incluidos los planes ejecutivos)
  • Quiero incluir datos de perfmon

Entonces, lo que trato de lograr es una supervisión general del rendimiento iniciable y detenible (también programable) que devuelve:

  1. Toda la información requerida para identificar el éxito de las tareas continuas de optimización del rendimiento

  2. Par de figuras simples y agregadas que ayudan a visualizar el progreso a largo plazo. Esp. para la gestión ;-)

  3. Planes de ejecución re-ejecutables dentro del seguimiento del generador de perfiles para comparar los cambios y mejoras individuales de la cola mediante tareas de optimización de índice

Encontré un par de información que describe la creación de líneas de base de rendimiento. La mayoría de ellos son muy complicados o se centran solo en uno de los indicadores de rendimiento deseados (principalmente datos de rendimiento).

La muestra / descripción más coincidente fue la siguiente: Crear una línea base de rendimiento para SQL Server

La pregunta es:

¿Alguien tiene experiencia creando este tipo de monitor de rendimiento de manera rápida y factible?


3
Un poco de información puede obtener de Brent Ozar Sp_Blitz más enlaces de referencia aquí y aquí
Shanky

3
Creo que la respuesta corta es: No. Debe tomarse el tiempo para describir qué es lo que necesita para basar el rendimiento. En base a esa evaluación, debe reunir las consultas para recopilar la información y crear los objetos db para almacenar la información. Además de la sugerencia de @ Shanky, también puede usar sp_whoisactive para recopilar información útil
tommyfly

66
También podría considerar una herramienta de terceros que hace líneas de base (y mucho más que eso). Lo que está proponiendo es reinventar mucho trabajo que otros ya han hecho. No, no son gratuitos, pero tampoco lo es su tiempo (y la gerencia lo sabrá bien).
Aaron Bertrand

Hola Aaron, ¿puedes proporcionar una herramienta de terceros que haga esto
TheGameiswar

3
Ir para SQLSentry . Lo utilicé en mi trabajo anterior y es una herramienta excelente + tengo un excelente apoyo y gente de la comunidad como @AaronBertrand :-)
Kin Shah

Respuestas:


8

Más de un año después, quiero que todos sepan mi experiencia y el resultado final de esta pregunta / tema.

Empecé creando cosas por mi cuenta. Inicialmente seguí el artículo Recopilar y almacenar datos históricos del contador de rendimiento de SQL Server con CMV de Tim Ford para obtener algo y lo extendí con los datos que deseaba recopilar. Entonces, una vez al día, ejecuto varios procedimientos almacenados en cada servidor SQL que recopilan información específica de los DMV y almacenan los resultados en el servidor local dentro de una base de datos. Esto incluye el uso del índice, índices faltantes, entradas de registro específicas como crecimiento automático, configuración del servidor, configuración de la base de datos de la aplicación, fragmentación, ejecución del trabajo, información del registro de transacciones, información del archivo, estadísticas de espera y más.

Además, agregué los resultados de ejecución regular sp_blitz de Brent Ozar a este repositorio para recopilar indicaciones valiosas adicionales para trabajar, mejorar e informar.

Posteriormente, se recopilan todos los datos en un Servidor SQL de monitoreo dedicado y de esta manera creo una tienda agrupada para obtener información relevante sobre el rendimiento de todos mis servidores y la uso como base para la investigación y los informes.

Luego creé hojas de Excel y también informes utilizando servicios de informes para analizar e interpretar. Algunas muestras:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

También configuré algunos contadores de rendimiento con TYPEPERF, inspirado en el artículo " Recopilación de datos de rendimiento en una tabla de SQL Server " de Fedor Georgiev.

Desde mi instancia de Monitoreo SQL, desencadené typeperf para ejecutar y recolectar un número configurable de muestras con un intervalo de muestra configurable y almacenar los resultados en mi base de datos de monitoreo central.

Esto me permite observar valores de rendimiento a largo plazo, muestra:

ingrese la descripción de la imagen aquí

Después de un tiempo de usar esto para recopilar información de línea de base, se dio cuenta de que es una gran cantidad de trabajo de mantenimiento que debe gastarse en buscar trabajos fallidos, procedimientos de eliminación de errores (por ejemplo, en caso de que una base de datos se desconectara, algunos scripts fallidos), manteniendo la configuración después de reemplazar un servidor ...

Además, la base de datos que recopila todos los registros necesita mantenimiento y ajuste de rendimiento, por lo que surge un trabajo adicional para mantener los datos útiles ...

Lo que finalmente falta por completo es la capacidad de ver las cosas que suceden en vivo. En Best Case, podré decir lo que posiblemente estaba sucediendo al día siguiente después de que los recopiladores de datos hayan corrido. También faltan todos los detalles. No tengo acceso a gráficos de punto muerto, no puedo ver los planes de consulta de consultas que se estaban ejecutando en un marco de tiempo sospechoso ...

Todo eso me obligó a cobrarle a la administración para gastar dinero en una solución profesional que no puedo crear por mi cuenta.

La elección final fue comprar SentryOne porque, en comparación con otros, es convincente y ofrece mucha información necesaria para identificar nuestros puntos débiles.

Como conclusión final, recomendaría a cualquiera que busque respuestas a preguntas similares que no intente crear cosas por su cuenta, siempre y cuando no tenga un entorno pequeño y básicamente saludable. Si tiene un par de sistemas y muchos problemas, es mejor buscar inmediatamente una solución profesional y usar la asistencia del proveedor en sus problemas en lugar de gastar mucho tiempo y dinero para crear algo menos útil. Sin embargo, esta ruta seguía siendo muy interesante y me hizo aprender mucho que no quiero perderme.

Espero que encuentres esto útil una vez que te encuentres con este hilo de preguntas.

EDITAR 20 de abril de 2017: Brent Ozar publicó recientemente el siguiente artículo en Facebook que es una especie de enfoque similar adoptado por el equipo SQL Tiger: https://blogs.msdn.microsoft.com/sql_server_team/sql-server-performance-baselining -reports-desatado-para-Enterprise-Monitoring /


2
Me alegra que hayas llegado a la misma conclusión, y tienes toda la razón, tu tiempo se gasta mucho mejor en solucionar tus problemas reales en lugar de reinventar la rueda. Sin embargo, su rueda parece particularmente brillante: D
ConstantineK

6

Aquí hay algunos buenos artículos con algunos ejemplos prácticos que puede encontrar aquí:

Cómo detectar problemas de rendimiento de SQL Server utilizando líneas de base - Parte 1 - Introducción

Cómo detectar problemas de rendimiento de SQL Server mediante líneas de base - Parte 2 - Recopilación de métricas e informes

Cómo detectar problemas de rendimiento de SQL Server usando líneas de base - Parte 3

Si bien la Parte 1 le proporcionará algunos conocimientos básicos sobre cuál es la línea de base, en la Parte 2 puede encontrar información sobre cómo hacerlo por su cuenta utilizando el método "pobre" (es gratis y bueno para aprender)

La Parte 3 proporciona algunos ejemplos sobre cómo puede establecer líneas de base y cómo usar las líneas de base para solucionar algunos problemas a través de ApexSQL Monitor


4

Como un DBA recientemente creado bajo el arma, he ejecutado toda una gama de herramientas gratuitas y he experimentado un poco en el espacio pagado (DPA, SQL Sentry y Foglight) y realmente depende de para qué quieres la herramienta.

En mi experiencia, lo más importante no era solo comunicar las líneas de base de rendimiento (a la gerencia no le importaba mucho a menos que hubiera alguien a quien gritar), sino producir algo en un formato fácil de consumir que dejara en claro las prioridades y pudiera rastrear el rendimiento problemas en la producción.

Puede desarrollar absolutamente sus habilidades yendo por la ruta gratuita, y las herramientas para SQL Server son excelentes.

Con estas y algunas bases de datos / tablas y trabajos y tiempo adicionales, puede construir un sistema de monitoreo básico (pero no es bonito), estas son herramientas para los DBA; a menos que sea bueno en BI, tendrá dificultades para encontrar tiempo para producir cosas útiles para los negocios, a pesar de que la aplicación Ozar sp_blitz es bastante genial.

Después de pasar alrededor de un año haciendo cosas gratis y resolviendo muchos problemas (pero sin obtener mucha aceptación), pude dejar claro, después de un problema importante, que el software de monitoreo de rendimiento era una prioridad, e íbamos a comprarlo Pase lo que pase.

Después de hacer una demostración de los clientes mencionados anteriormente, elegí DPA porque la administración podría consumir fácilmente los resultados, aunque definitivamente tengo licencias de cliente para SQL Sentry Plan Explorer Pro (1000% vale la pena) y realmente me gustó usar la versión del servidor, simplemente no los tomó de la misma manera

También intenté hacer que SQLNexus funcionara en un punto, pero terminé trabajando mucho más de lo que me interesaba, puede satisfacer sus necesidades.


1

Para crear rápidamente una línea base de rendimiento para obtener algunas cifras sobre las diferentes instancias de SQL productivas, usaría una prueba gratuita de una herramienta de terceros como Solarwinds Database Performance Analyzer.



0

Estaba siguiendo una ruta similar a algunos de los carteles anteriores, pero luego me topé con algo creado por Microsoft.

Se mencionó anteriormente brevemente, pero no se proporcionó ningún enlace explícito. El Microsoft Tiger Team desarrolló el 'Tiger Toolbix' que se puede descargar desde aquí: https://github.com/Microsoft/tigertoolbox

Un video de Youtube explica Tiger Toolbox: https://www.youtube.com/watch?v=bx_NGNEz94k

También hay https://github.com/sqlcollaborative/dbareports

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.