Skip to content

SQL Server Slow Queries (Beta) ​

1. Detailed MetricsSQL ServerAzure SQL DatabaseAzure SQL Managed InstanceFabric SQL DatabaseAmazon RDS for SQL Server

Descripción de la página ​

Esta página muestra las consultas (queries) de una instancia que Coyote Monitor ha analizado y en las que ha encontrado margen de mejora, para que puedas ver cuáles consumen más recursos y qué se puede hacer para corregirlas. Una query lenta o costosa es una consulta que tarda mucho en terminar, consume mucha CPU o lee muchos datos: mientras se ejecuta compite con el resto de la actividad del servidor, y si además se lanza con frecuencia, su impacto se multiplica.

El panel se usa en dos pasos. Primero eliges por qué métrica quieres ordenar (CPU, lecturas, duración…) y el panel te lista las 20 queries más destacadas de esa métrica. Después seleccionas una de ellas y obtienes su detalle completo: el texto original, una versión documentada, una propuesta de versión optimizada, recomendaciones concretas, una estimación de mejora y un visor gráfico de su plan de ejecución.

El análisis y las propuestas de optimización los genera un sistema automático (IA) a partir de la query y de su plan de ejecución. Son una ayuda para decidir por dónde empezar, no un cambio que se aplique solo: la decisión final y la validación siguen siendo tuyas.

Variables ​

VariableDescripción
$Server_NameSelecciona la instancia cuyas queries se quieren revisar. Los valores corresponden a las instancias configuradas en el entorno de monitorización.
CommentsIdioma (Spanish o English) en el que se muestran los textos generados por el análisis: query documentada, query optimizada, recomendaciones y mejora estimada. El texto original de la query y el plan de ejecución no se traducen.

Este dashboard no depende del selector de rango de tiempo: siempre muestra el análisis más reciente disponible para la instancia elegida.

Estado General ​

Cabecera de Estado ​

  • Descripción: Barra superior con el nombre de la instancia y una insignia de estado que resume cuántas queries con margen de mejora hay en ella, desglosadas por nivel, junto con la fecha y hora del último análisis. A la derecha tiene una leyenda con los tres niveles de mejora. Cada nivel representa cuánto podría mejorar el rendimiento de una query si se aplican los cambios propuestos, y se usa con los mismos colores en las tarjetas de Select Query y en la cabecera de Query List.

Colores por valor:

ValorColorDescripción
HIGH IMPROVEMENTHay al menos una query con nivel HIGH: es donde más rendimiento se puede ganar.
MEDIUM IMPROVEMENTNo hay queries HIGH, pero sí MEDIUM: mejora apreciable.
LOW IMPROVEMENTSolo hay queries con nivel LOW: mejora reducida.
NOTHING TO IMPROVELa instancia no tiene queries pendientes de mejora.

La insignia toma siempre el color del nivel más alto que haya en la instancia.

Selección de la Query ​

Barra de ordenación y lista de queries de la izquierda. Desde aquí se decide qué métrica manda y qué query se quiere estudiar.

Sort By ​

  • Descripción: Barra con siete botones que permite elegir con qué métrica se ordenan las queries de la lista. El botón activo se resalta con el degradado verde; al pasar el ratón por encima de cualquiera aparece una breve explicación de qué mide. Al pulsar uno, la lista Select Query se recalcula al instante con esa métrica, y el panel de detalle resalta en verde el valor de esa misma métrica. Las métricas de CPU, lecturas, escrituras y duración son valores medios por ejecución; Executions es un recuento y Score, una puntuación.
BotónQué mideCuándo mirarlo
ScorePuntos que resumen los problemas de rendimiento detectados en el plan de ejecución de la query. Empieza en 1 y suma 1 por cada tipo de problema detectado: índices que faltan, lookups, scans, ordenaciones, operadores de unión, derrames a TempDB, avisos de concesión de memoria, conversiones implícitas, paralelismo, funciones de usuario…Para empezar por las queries con más margen de mejora, aunque no sean las más lentas ni las más frecuentes. Es el mismo Score de las insignias: por encima de 8 es HIGH, de 4 a 8 MEDIUM y por debajo de 4 LOW.
CPU TimeTiempo de procesador que consume la query en cada ejecución.Cuando el servidor tiene la CPU alta: señala las consultas que más procesador consumen.
Logical ReadsPáginas de datos (de 8 KB) leídas desde la memoria caché del servidor.Valores altos suelen indicar índices que faltan o planes de ejecución poco eficientes que recorren más datos de los necesarios.
Logical WritesPáginas de datos modificadas en memoria.Relevante para consultas que escriben mucho (INSERT, UPDATE, DELETE).
Physical ReadsPáginas leídas directamente del disco, porque no estaban en memoria.Valores altos apuntan a falta de memoria o a lecturas muy grandes sin índice adecuado.
DurationTiempo total transcurrido desde que la query empieza hasta que termina.Es la métrica que más se parece a lo que percibe el usuario: útil para localizar consultas lentas.
ExecutionsNúmero de veces que se ha ejecutado la query.Una query barata pero ejecutada miles de veces puede pesar más que una cara y esporádica.
  • Unidades: Executions en número de ejecuciones; Duration y CPU Time en milisegundos; lecturas y escrituras en páginas de datos; Score en puntos (sin unidad).

Recomendación práctica

Si te preocupa la lentitud que perciben los usuarios, empieza por Duration y CPU Time. Si el problema es una carga constante sin una query claramente lenta, prueba Executions: a veces el culpable es una consulta muy ligera lanzada de forma masiva.

Select Query ​

  • Descripción: Lista vertical con las 20 queries de la instancia seleccionada que tienen el valor más alto en la métrica elegida en Sort By. Solo aparecen queries en las que el análisis ha detectado margen de mejora. La lista está ordenada de mayor a menor por la métrica elegida en Sort By; si dos queries empatan en esa métrica, queda primero la de mayor Score.
  • Interactividad: cada tarjeta es clicable. Al pulsarla se marca con borde verde y el panel de detalle de la derecha pasa a mostrar esa query, sin recargar la página.

Cada tarjeta muestra:

  • #Id: identificador de la query dentro de Coyote Monitor.
  • Insignia SCORE (por ejemplo, SCORE 8): puntuación que resume cuántos problemas de rendimiento se han detectado en el plan de ejecución de la query (índices que faltan, accesos poco eficientes, avisos del propio SQL Server…). Cuanto más alto, más margen de mejora. El color de la insignia indica el nivel de mejora: cuánto podría ganar la query si se aplican los cambios propuestos.
  • Base de datos en la que se ejecuta la query.
  • Métrica elegida: el nombre y el valor de la métrica por la que se está ordenando (por ejemplo, CPU Time: 5723 ms o Executions: 133), para ver de un vistazo cuánto pesa cada query en ese criterio. Cambia al pulsar otro botón de Sort By.

Colores por valor:

ValorColorDescripción
HIGH (Score mayor que 8)Mejora alta: es donde más rendimiento se puede ganar. Conviene revisar esta query cuanto antes.
MEDIUM (Score de 4 a 8)Mejora media: recomendable, sin urgencia.
LOW (Score menor que 4)Mejora baja: impacto reducido, atender cuando haya margen.

Detalle de la Query ​

Query List ​

  • Descripción: Panel principal del dashboard. Muestra el detalle completo de la query seleccionada en Select Query: una cabecera con sus datos clave, cuatro bloques de texto con el análisis y un visor gráfico de su plan de ejecución.
  • Unidades: Executions en número de ejecuciones; CPU Time y Duration en milisegundos; Logical Reads, Logical Writes y Physical Reads en páginas de datos.

Cabecera ​

Resume la query de un vistazo: su Id, la insignia SCORE (con los mismos colores de la tabla anterior), la base de datos y la mejora estimada que el análisis espera conseguir si se aplica la optimización propuesta. A la derecha tiene el botón ◈ View Execution Plan, que abre el visor del plan.

Debajo, en una segunda línea, aparecen los valores de las seis métricas de Sort By para esa query: CPU Time, Logical Reads, Logical Writes, Physical Reads, Duration y Executions. La métrica por la que está ordenada la lista en ese momento aparece sombreada en verde, para localizarla sin esfuerzo y poder comparar el resto de valores de la misma query. Si la lista está ordenada por Score, lo que se resalta (con un borde verde) es la insignia SCORE de la primera línea, porque el Score no es una de las seis métricas de esta segunda línea.

Bloques de análisis ​

Cuatro recuadros, cada uno con su botón Copy para copiar el contenido al portapapeles (el botón muestra "Copied" unos segundos para confirmar):

  • Original Query: el texto de la query tal como se ejecuta en el servidor, formateado y con la sintaxis resaltada para que sea legible.
  • AI Documented Query: la misma query con comentarios que explican qué hace cada parte.
  • AI Optimized Query: una propuesta de reescritura de la query pensada para ejecutarse mejor.
  • Recommendations: lista de acciones sugeridas. Los encabezados de cada grupo aparecen en verde y cada recomendación con una barra lateral morada.

Recomendación práctica

Trata la query optimizada y las recomendaciones como un punto de partida, no como un cambio listo para producción. Pruébalas antes en un entorno de pruebas, compara el plan de ejecución y los tiempos con los de la query original, y revisa el coste de mantenimiento antes de crear un índice nuevo: cada índice acelera lecturas pero ralentiza las escrituras de la tabla.

Visor del plan de ejecución ​

El plan de ejecución es el "mapa" que SQL Server sigue para resolver una query: indica en qué orden accede a las tablas, qué índices usa y cuánto cuesta cada paso. El botón ◈ View Execution Plan lo abre en una ventana a pantalla completa con tres zonas.

Barra de herramientas. Muestra el título de la query y permite cerrar la ventana (Close), copiar el XML del plan (Copy Query Plan XML), acercar (+), alejar (−) y ajustar el plan a la ventana (Fit). El plan también se puede arrastrar con el ratón y ampliar con la rueda.

Plan Insights. Tres columnas con el resumen del plan:

  • Runtime Summary: datos generales del plan, como el tipo de sentencia (Statement Type), su coste total (Total Cost), el tiempo de compilación o el grado de paralelismo máximo (Max DOP). Solo se muestran los que el plan incluye.
  • Missing Index Suggestions: índices que SQL Server considera que ayudarían a esta query, con el porcentaje de mejora que estima (Impact) y las columnas sugeridas (EQUALITY, INEQUALITY e INCLUDE). Si no hay sugerencias, aparece "No missing index suggestions".
  • Warnings: avisos del plan, tanto globales como de cada operador, por ejemplo derrames a TempDB, problemas de concesión de memoria, estimaciones de filas poco fiables o uniones sin condición. Si no hay ninguno, aparece "No warnings found".

Diagrama del plan. Cada operador es un nodo con su nombre, un icono y el porcentaje de coste (Cost) que aporta. Ese porcentaje es relativo al operador más costoso del plan, no al coste total: el más caro marca el 100 %. Los nodos con avisos muestran además "⚠ n warnings". Al pasar el ratón por un nodo aparece un tooltip con su coste de operador, el coste del subárbol, las filas estimadas, si es paralelo y sus avisos. Al hacer clic en un nodo, la vista hace zoom animado hasta él.

Colores por valor (nodos del diagrama):

ValorColorDescripción
Sentencia (nodo raíz)Resumen de toda la sentencia: coste total y filas estimadas. No cuenta como operador.
> 50 %Operador muy costoso: aporta más de la mitad del coste del operador más caro del plan. Es el primer sitio donde mirar.
> 20 %Coste notable, pero no dominante.
Resto de valoresOperador de coste bajo.

Recomendación práctica

En el diagrama, busca primero los nodos en rojo: son los que concentran el coste. Un operador de tipo Scan (recorrido completo de una tabla o índice) con coste alto, junto con una sugerencia en Missing Index Suggestions, suele indicar que un índice adecuado reduciría mucho el trabajo de la query.