sql >> Base de Datos >  >> RDS >> Sqlserver

Las 10 preguntas más frecuentes sobre la supervisión del rendimiento de SQL Server

Muchos administradores de bases de datos consideran que la supervisión del rendimiento de SQL Server es su responsabilidad más importante. Dado que los servidores con un rendimiento deficiente pueden tener un impacto negativo no solo en las operaciones internas, sino también en las aplicaciones orientadas al cliente, el seguimiento del rendimiento de SQL y la mitigación de problemas rápidamente son fundamentales para el éxito y la rentabilidad de la empresa.

A medida que más organizaciones recurren a SQL Server, los administradores de bases de datos buscan cada vez más recursos que les ayuden a implementar una estrategia sólida de supervisión del rendimiento. Existe una gran cantidad de documentación disponible para ayudar a los administradores de bases de datos a poner en marcha la supervisión del rendimiento de SQL Server, pero existen algunas preguntas universales a las que casi todos los administradores de bases de datos desean una respuesta rápida. Aquí hay respuestas a 10 de las preguntas más frecuentes sobre el monitoreo del rendimiento de SQL Server.

¿Qué es la supervisión del rendimiento de SQL Server?

El objetivo principal de la supervisión del rendimiento de SQL Server es garantizar un rendimiento uniforme y una alta disponibilidad de las instancias de SQL Server. La supervisión del rendimiento es un proceso de dos partes, y ambas partes son esenciales para mantener su sistema funcionando de manera óptima:

  • Supervisión: Realice un seguimiento de una amplia gama de métricas de rendimiento frente a umbrales preestablecidos para identificar comportamientos anómalos y proporcionar un mecanismo para informar al DBA con alarmas específicas del problema y proporcionar suficiente contexto para comenzar el proceso de diagnóstico.

  • Diagnóstico: El flujo de trabajo y las herramientas necesarias para establecer el origen de un problema de rendimiento y los datos necesarios para remediar el problema inmediato.

  • Análisis de causa raíz: Los conocimientos para mirar más allá de los síntomas e identificar los problemas subyacentes que desencadenaron el problema y pueden hacer que vuelva a ocurrir.

  • Análisis de tendencias: Observe el rendimiento durante largos períodos de tiempo. Utilice el análisis de tendencias para identificar problemas antes de que ocurran, así que distinga entre problemas únicos y recurrentes o examine los límites de la carga de trabajo a lo largo del tiempo. Este último se puede utilizar para predecir futuras necesidades de infraestructura, informar los esfuerzos de consolidación o el tamaño adecuado para la migración a la nube planificada.

¿Qué herramientas de supervisión del rendimiento de la base de datos son las mejores?

La cantidad de bases de datos de las que es responsable un DBA hace que el monitoreo y el diagnóstico manuales sean poco prácticos, tal vez incluso imposibles. Afortunadamente, las últimas soluciones de software de supervisión del rendimiento están equipadas con un montón de funciones para que la supervisión del rendimiento sea manejable, incluso a gran escala:

  • Gestión eficaz de alarmas: Dar prioridad a las alarmas significa que puede abordar primero los grandes problemas e ignorar las falsas alarmas.

  • Diagnóstico completo: Las mejores herramientas de supervisión del rendimiento le permiten profundizar en el diagnóstico. Saber que hay un problema no es tan útil como saber cómo solucionarlo.

  • Rápido tiempo de valorización: Cada instancia recopila cientos de métricas y almacenarlas en el sitio se volverá costoso rápidamente. Considere una de las soluciones de monitoreo de rendimiento de SaaS para ahorrar costos y escalabilidad.

  • Análisis: Los análisis robustos son un diferenciador clave entre las herramientas de monitoreo de rendimiento. Para obtener el máximo impacto en el rendimiento, seleccione una herramienta que proporcione métricas amplias para la carga de trabajo, el plan de consulta, la causa raíz de la alarma y el bloqueo.

  • Seguimiento de datos históricos: Busque una herramienta de monitoreo de rendimiento que guarde datos históricos. Esto acelerará la resolución de problemas porque sabrá si un problema es recurrente y cómo se rastrean los problemas a lo largo del tiempo.

  • Ajuste y optimización del plan de consultas: Una herramienta con inteligencia artificial integrada le permitirá afinar las consultas y optimizarlas para una instancia específica.

  • Comprobaciones de estado: Las verificaciones de estado monitorean los signos vitales de SQL Server para informarle que podría tener un problema, a veces incluso antes de que el problema exista.

Si desea una herramienta con todas las funciones discutidas anteriormente, deberá buscar una de las soluciones de monitoreo de rendimiento de SQL Server basadas en la nube. Sin igual en escalabilidad, flexibilidad y precio, estas herramientas de monitoreo brindan una plataforma de monitoreo de rendimiento segura para satisfacer todas las necesidades.

¿Cuál es la mejor manera de optimizar la supervisión del rendimiento de la base de datos?

Una de las mejores formas de optimizar la supervisión del rendimiento es la automatización. La automatización de tareas comunes, como monitorear el espacio en disco, inspeccionar los registros de errores y verificar las copias de seguridad de la base de datos, garantizará que estas tareas se completen, lo que le da al DBA más tiempo para realizar un trabajo de mayor valor.

Además, puede implementar lo siguiente para optimizar la supervisión del rendimiento de SQL Server:

  • Supervisión móvil: El monitoreo móvil está disponible desde sus dispositivos Android e iOS. Al proporcionar mapas de calor, alarmas inteligentes y listas de alarmas, la supervisión del rendimiento móvil le permite diagnosticar problemas y comenzar la clasificación desde cualquier lugar.

  • Ajuste y optimización de consultas: El ajuste del rendimiento le permite visualizar, analizar y optimizar sus planes de ejecución y consultas SQL al resaltar los operadores de mayor costo, ofrecer soluciones sugeridas para problemas y reescribir/optimizar sus consultas y planes de consulta.

  • Comprobaciones de estado: Las comprobaciones de estado lo ayudan a optimizar su supervisión del rendimiento al identificar problemas de estado dentro de cada instancia de SQL Server, incluidas las largas esperas y la latencia de E/S. Las comprobaciones de estado también proporcionan datos históricos, por lo que puede realizar un seguimiento de los problemas de rendimiento a lo largo del tiempo.

¿Cómo debo elegir una herramienta de monitoreo de SQL Server?

Hay dos consideraciones principales al decidir sobre una herramienta de monitoreo de rendimiento de SQL Server.

¿Qué tipo de herramienta estás buscando?

Hay tres tipos principales de herramientas de supervisión del rendimiento a tener en cuenta:

  • Personalizado/fabricado internamente: En este caso, tenga en cuenta que el hecho de que pueda hacer algo no siempre significa que deba hacerlo. Sí, puede crear una herramienta interna de supervisión del rendimiento para recopilar métricas mediante PerfMon, seguimientos, DMV y XEvents. Pero las desventajas superan con creces las ventajas de tomar esta ruta. No es escalable, por lo que, a medida que aumentan las instancias, se ven afectadas las capacidades de supervisión del rendimiento. Además, no es posible monitorear todas las cosas que necesita ver para garantizar un rendimiento óptimo de SQL Server. Una vez que comienza a recopilar datos, debe almacenarlos en algún lugar para que sean útiles, y eso puede resultar costoso. En pocas palabras, ¿es más valioso para usted dedicar su precioso tiempo a crear y mantener una herramienta de supervisión del rendimiento o dedicarlo a arreglar y ajustar cargas de trabajo de misión crítica?

  • Gratis/código abierto: Esta es potencialmente una mejor opción que crear su propia solución de monitoreo de rendimiento, pero aún existen limitaciones. Aunque gana un poco de personalización, todavía le falta amplitud de cobertura y alertas preconfiguradas. También deberá proporcionar su propio espacio de almacenamiento de datos. Es un proceso complejo construir una herramienta que pueda capturar de manera efectiva grandes cantidades de datos de rendimiento sin afectar el servidor monitoreado, establecer los umbrales apropiados para cientos de métricas, administrar grandes volúmenes de datos recopilados y luego mantenerlos actualizados desde una versión de servidor SQL al siguiente. Concentre su tiempo en resolver problemas y no en construir sistemas de monitoreo de desempeño. Si depende de las actualizaciones de la comunidad, el soporte para nuevas versiones de una plataforma de base de datos puede retrasar su lanzamiento.

  • Comercial: Las herramientas comerciales de supervisión del rendimiento de SQL ofrecen una gama de funciones y niveles de personalización, y muchas son sorprendentemente asequibles. Las herramientas comerciales facilitan la supervisión del rendimiento con opciones como comprobaciones de estado, gestión de alarmas, diagnósticos de rendimiento y capacidades de supervisión móvil, características que no obtendrá de las herramientas gratuitas o de las que se crean internamente.

¿Cuáles son sus necesidades para su entorno específico?

Antes de seleccionar una herramienta de monitoreo de rendimiento, hágase estas preguntas para ayudarlo a identificar la herramienta que satisfaga sus necesidades específicas:

  • ¿Cuántas instancias desea monitorear?

  • ¿Están colocados o dispersos?

  • ¿Están en las instalaciones o en la nube (o ambos)?

  • ¿Puede permitirse el pago de una suma global por infraestructura y licencias, o necesita repartir el costo?

  • ¿Tiene instancias de infraestructura y base de datos disponibles para dedicar a una herramienta de monitoreo?

  • ¿Tiene tiempo o recursos internos para construir y mantener la infraestructura de monitoreo?

  • ¿Tiene la herramienta la capacidad de diseccionar la carga de trabajo en múltiples dimensiones al instante, para ahorrarle horas de tiempo de creación de secuencias de comandos?

  • ¿Existe una capacidad inteligente para analizar los datos y ayudarlo a identificar problemas específicos?

  • ¿La herramienta proporciona diagnósticos instantáneos, mejores prácticas o diagnósticos para el desglose relevante?

¿Cuál es la mejor manera de monitorear el estado del rendimiento de la base de datos?

Hay varias señales de que su SQL Server no está en buen estado, incluyendo:

  • Ralentización general de la carga de trabajo

  • Tiempos de espera de conexión/consulta

  • Uso excesivo de la CPU

  • Presión de memoria

  • Latencia de lectura/escritura de E/S excesiva

  • Registro de transacciones excesivo o tamaño de TempDB

Si nota alguno de estos síntomas, es hora de configurar controles de salud para que su sistema vuelva a funcionar al máximo. Algunos pasos iniciales que puede seguir para identificar la causa de los problemas de rendimiento incluyen:

  • Establecer una línea base de rendimiento y medirla contra ella

  • Verificando copias de seguridad

  • Comprobación de índices faltantes

  • Determinar qué porcentaje de la carga de trabajo proviene de consultas ad hoc

¿Cuáles son las mejores métricas para monitorear el rendimiento de SQL Server?

Hay cientos de métricas que puede medir para ayudarlo a rastrear y mejorar el rendimiento, pero hay algunas destacadas que deberían ser parte de cada plan de mantenimiento de SQL Server. Estas son algunas de las áreas principales para monitorear y las métricas que querrá vigilar:

  • Índices. Los índices son una fuente frecuente de problemas de rendimiento porque las bases de datos están en constante cambio. Se agregan y eliminan datos, y se modifican y eliminan índices, todo lo cual contribuye a un rendimiento deficiente. Estas son las métricas a observar:

    • Factor de relleno
    • E/S
    • Fragmentación
  • Caché de búfer. Es importante configurar la memoria caché del búfer para optimizar la cantidad de tiempo que las páginas permanecen allí sin exagerar y acaparar la memoria que se necesita en otros lugares. Estas son las métricas a observar:

    • Esperanza de vida de la página
    • Proporción de aciertos de caché de búfer
  • T-SQL. En lugar de ejecutar sentencias SQL ad hoc, SQL Server las procesa por lotes, las compila en un plan de ejecución y las almacena en caché, volviendo a compilar las sentencias según sea necesario. Las compilaciones y recompilaciones excesivas pueden degradar el rendimiento. Estas son las métricas a observar:

    • Compilaciones SQL
    • Recompilaciones de SQL
  • Otras métricas para observar de cerca:

    • Bloquea las esperas y los procesos bloqueados
    • Uso de la CPU

¿Cuáles son los problemas comunes en la supervisión del rendimiento de la base de datos?

Cuellos de botella de rendimiento

Los cuellos de botella de rendimiento se manifiestan como bases de datos lentas o que no responden. Los cuellos de botella pueden ser difíciles de localizar porque pueden estar relacionados con la memoria, el almacenamiento o el procesador. Sin embargo, hay algunos lugares donde primero debe buscar problemas:

  • WRITELOG tiempo de espera
  • UNIÓN DE BUCLE ANIDADO
  • Contención de TempDB

Esperanza de vida de página baja (PLE)

Un PLE bajo perjudica el rendimiento porque SQL Server tiene que ir al disco con más frecuencia para encontrar archivos de datos, lo que lleva mucho más tiempo que leerlos desde la memoria caché del búfer.

Fragmentación

Verifique sus índices en busca de fragmentación excesiva. El rendimiento de SQL Server sufre cuando tiene que buscar páginas dispersas y parcialmente llenas para encontrar datos.

¿Cómo debo configurar el sistema de supervisión del rendimiento de mi base de datos?

Una vez que se haya decidido por una solución de monitoreo de rendimiento de SQL Server, es hora de ponerla en marcha. Si bien es posible que desee sumergirse en todas las funciones nuevas y brillantes de inmediato, dar un paso atrás y abordar el proceso metódicamente lo ayudará a asegurarse de que está aprovechando al máximo su sistema. Estos son algunos consejos para incorporar su nueva herramienta de gestión del rendimiento:

  • Decide qué instancias necesitan más tu atención

  • Ejecute los requisitos previos

  • Conozca los requisitos de su sistema

  • Descarga el instalador

  • Añadir conexiones

¿Qué consultas puedo usar para monitorear el rendimiento del servidor SQL?

Las consultas que utilice para la supervisión del rendimiento variarán en función de las métricas de las que realice un seguimiento. Sin embargo, es probable que la detección de problemas de memoria, la evaluación de la desfragmentación de índices y la identificación de tiempos de espera inaceptables estén en la parte superior de la lista de verificación de monitoreo de rendimiento de cada DBA. La documentación de SQL Server de Microsoft proporciona detalles para una serie de consultas para ayudarlo a implementar su plan de monitoreo de rendimiento:

  • Uso de memoria

  • Desfragmentación de índices

  • Estadísticas de espera

¿Cuáles son las mejores prácticas de supervisión del rendimiento de la base de datos?

Algunas personas no están de acuerdo con el término "mejores prácticas", pero cuando se trata de la supervisión del rendimiento de SQL Server, no se puede discutir que hay ciertas cosas que un DBA debe hacer para mantener el sistema en buen estado y los usuarios contentos.

Haga del mantenimiento del índice una prioridad

Descuidar sus índices es una forma segura de generar problemas de rendimiento. Los índices son la fuente de los asesinos de rendimiento comunes, incluidas la fragmentación y las divisiones de página.

Conoce tu carga de trabajo

Es difícil saber cuándo tiene un problema si no sabe cómo se ve "normal". Tómese un tiempo para conocer su carga de trabajo haciendo preguntas como:

  • ¿Cuándo está más ocupada esta instancia?

  • ¿Qué aplicaciones usan esta instancia?

  • ¿Cuándo fue la última copia de seguridad?

  • ¿Esta instancia tiene problemas de rendimiento conocidos?

Elija una herramienta de supervisión del rendimiento que satisfaga sus necesidades específicas

Antes de comprometerse con una herramienta de monitoreo de rendimiento de SQL Server, primero debe definir sus necesidades. Una vez que comprenda lo que está tratando de lograr con su herramienta de monitoreo de rendimiento, puede buscar con confianza una solución con las características que cumplan con sus requisitos.

Encuentre y corrija cuellos de botella en el rendimiento

Los síntomas obvios de cuellos de botella en el rendimiento incluyen el uso de demasiada memoria, largos tiempos de espera, fragmentación de índices y demasiados o muy pocos índices. Encontrar y solucionar estos cuellos de botella rápidamente es una de las principales responsabilidades de un DBA. La mejor manera de mantener el rendimiento de la base de datos al máximo es implementar una herramienta de supervisión del rendimiento que le ayude a localizar y solucionar fácilmente los cuellos de botella del rendimiento y otras fuentes de degradación del rendimiento.