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

Perfilado de consultas 101:sí, realmente puede mejorar el rendimiento de su servidor SQL

La creación de perfiles de consultas es la forma en que se da cuenta de lo que sucede dentro de la caja negra del rendimiento de SQL Server.

Los usuarios lo tienen fácil. los DBA no.

Piense en las sencillas opciones que tienen los usuarios cuando una aplicación de base de datos funciona mal:

  • Ve a buscar un café y espera.
  • Insultar a la computadora.
  • Quejarse a otros usuarios.
  • Envíe un ticket de problema.

¿No es esa la vida de Riley comparada con las opciones que tiene como DBA?

  • Busca sesiones bloqueadas.
  • Comprueba las proporciones de aciertos de la memoria caché del búfer.
  • Mida la espera máxima de E/S.
  • Examinar la esperanza de vida de la página.
  • Vea si faltan índices o si es necesario reconstruirlos.
  • Busca bloqueos/interbloqueos.
  • Comprueba el uso de la CPU.
  • Revise el registro de la aplicación en busca de mensajes sin memoria.
  • Asegúrese de que la base de datos tempdb esté configurada correctamente.

Podría ser cualquiera de esos problemas de software, y generalmente lo llevan a la solución de optimizar una consulta o cambiar su configuración. O podría ser un problema de hardware y la solución es comprar más memoria o potencia de procesamiento.

Debido a que las aplicaciones de bases de datos consisten principalmente en ejecutar muchas consultas SQL, los problemas de rendimiento tienen muchos lugares para esconderse en SQL Server. Si es un usuario, puede decir:“Oh, bueno, el problema debe estar dentro de esa caja negra en alguna parte. No es mi trabajo.”

Pero como DBA, no tienes ese lujo. Tienes que abrir la caja negra, subirte, encontrar el desorden y arreglarlo.

Perfilado de consultas 101 con supervisión del rendimiento del servidor SQL

En general, su objetivo con la supervisión del rendimiento del servidor es controlar el rendimiento de sus consultas SQL a lo largo del tiempo y el crecimiento del volumen de transacciones en su servidor SQL. Puede lograr ese objetivo de varias maneras.

Eche un vistazo al plan de explicación

El plan de explicación muestra lo que hará SQL Server al ejecutar la consulta, incluidas las tablas que se unirán, el tipo de unión que realizará, la cantidad de filas que tocará y los índices que utilizará.

¿Qué puede decirle el plan de explicación? Por un lado, puede ver cómo mejorar la consulta en sí, por ejemplo, eliminando una UNIÓN DE BUCLE ANIDADO que uno de los desarrolladores de la base de datos agregó en una tabla enorme. O bien, podría averiguar a partir del plan de explicación que necesita crear o reconstruir un índice para una tabla determinada.

El plan de explicación es un buen punto de partida para la creación de perfiles de consultas, incluso antes de ejecutar realmente las consultas sospechosas.

Ejecutar la consulta

Para ejecutar las consultas y ver a qué recursos afectan en tiempo de ejecución, primero crea seguimientos para marcar los eventos a medida que ocurren. Con las trazas, puede capturar datos y observar si surgen errores. Una herramienta de creación de perfiles almacena los datos capturados por los seguimientos y los muestra de una manera que le facilita encontrar y solucionar consultas problemáticas.

La combinación de las trazas y la herramienta de creación de perfiles puede responder muchas preguntas:

  • ¿Qué consultas consumen más memoria?
  • ¿Cuánto tarda en ejecutarse cada consulta?
  • ¿Qué bloqueos establece SQL Server para cada consulta?
  • ¿Qué consultas puede ejecutar SQL Server desde la memoria caché del búfer? ¿Con qué frecuencia necesita ir al disco?
  • ¿Cuántas filas examina cada consulta?
  • ¿Cuántas solicitudes por minuto está cumpliendo la base de datos?

Obtendrá la lectura más precisa ejecutando la consulta en sus bases de datos de producción, pero eso también puede ralentizar el procesamiento por parte de sus clientes y usuarios del mundo real. Si puede, pruebe primero en instancias de desarrollo o de prueba en las que no compita por memoria o E/S con su instancia de producción.

Hablando de clientes y usuarios, su objetivo en la elaboración de perfiles de consultas es hacerlos felices. La creación de perfiles puede descubrir fácilmente docenas de problemas en su base de datos, pero la razón por la que abrió la caja negra es para resolver los problemas más dolorosos. Después de capturar datos de un día o dos de uso normal, puede encontrar los problemas de rendimiento del servidor SQL que causan más problemas a sus usuarios. Tal vez un índice faltante está ralentizando la recuperación de registros, o demasiados índices están ralentizando la inserción de registros y las actualizaciones de la base de datos. Tal vez una consulta de uso frecuente esté reuniendo información que ya nadie le importa.

Use las herramientas de creación de perfiles con prudencia

Las herramientas de generación de perfiles lo rescatan del tedioso proceso de configurar manualmente cada evento, filtro y llamada de procedimiento para todo lo que desea rastrear. Con tantas cosas sucediendo dentro de la caja negra del rendimiento de SQL Server, puede capturar fácilmente demasiados datos para ver el bosque por los árboles.

Las buenas herramientas le permiten seleccionar cuidadosamente lo que rastrea para que, por ejemplo, no capture cientos de eventos de Lock:Acquired y llene innecesariamente su pantalla con ellos. Sin embargo, si necesita examinar un evento que ocurre con frecuencia, use filtros como el nombre de la aplicación o el nombre de la tabla.

En lugar de escribir datos de seguimiento en una tabla de una base de datos, considere guardarlos en su propio archivo separado. Eso evita que la sobrecarga del seguimiento se convierta en una carga para SQL Server y potencialmente distorsione los resultados. Si su herramienta de generación de perfiles favorece los datos extraídos de una tabla, puede importar los datos del archivo a la tabla más tarde.

Mejore la supervisión del rendimiento de SQL Server con la creación de perfiles de consultas

Sus usuarios se mantienen alejados de la caja negra del rendimiento de SQL Server, pero usted no tiene por qué hacerlo. La creación de perfiles de consultas es cómo abres la caja, descubres lo que está pasando dentro y comienzas a solucionar problemas.

Pero no espere hasta que esté en problemas para usarlo. La creación de perfiles de consultas se parece más a revisar el aceite que a reemplazar el motor. Ayuda con las tareas habituales de DBA de actualizar consultas obsoletas y modificar el diseño para que sus bases de datos se mantengan al día con los cambios en el negocio.