Este tema presenta la información básica sobre la página de SQL Insights, que incluye estadísticas de SQL, monitoreo de rendimiento, análisis de solicitudes a nivel de inquilino y lista de SQL.
Estadísticas del clúster
En la pestaña Statistics, puede consultar el número de sentencias SQL sospechosas y el número de SlowSQL en el clúster actual, así como las cifras correspondientes para cada inquilino. Haga clic en el nombre de un inquilino y el sistema mostrará los detalles de diagnóstico de dicho inquilino en las secciones inferiores de la página de SQL Insights.

Monitoreo de rendimiento del clúster
En la pestaña Performance Monitoring, puede consultar el rendimiento de SQL del clúster.

Análisis de solicitudes del inquilino
Haga clic en el botón View Request Analysis en la parte central de la página para consultar la Distribution of Elapsed Time y la Request Statistics List.
Monitoreo de rendimiento del inquilino
Haga clic en View Performance Monitoring en la parte central de la página para consultar los datos de monitoreo de rendimiento de un inquilino.
Información de diagnóstico del inquilino
Puede seleccionar un inquilino de la lista desplegable Tenant y consultar la información de diagnóstico sobre TopSQL, SlowSQL, SQL sospechoso, SQL de alto riesgo y SQL nuevo para ese inquilino. También puede realizar las siguientes operaciones:
Actualmente, el sistema tiene las siguientes restricciones para instancias de clúster Standard Edition (Key-Value):
Para instancias de clúster KV con números de versión mayores o iguales a 4.2.4 pero menores que 4.3.0, se puede mostrar la información de diagnóstico de TopSQL y SlowSQL.
Para instancias de clúster KV de otras versiones, solo se puede mostrar la información de diagnóstico de SlowSQL.
-
Filtre la información de diagnóstico de SQL por Database, Node, Duration, SQL ID, SQL Text o Quick Filter.
-
La opción Duration le permite consultar datos de los últimos 5 minutos, últimos 15 minutos, últimos 30 minutos, última hora, últimas 3 horas y últimas 6 horas. También puede personalizar la duración, pero tenga en cuenta las siguientes limitaciones:
Límite máximo de rango: El intervalo de tiempo seleccionado no debe exceder las 24 horas.
-
Límite mínimo de rango:
Para datos dentro de 3 días: El intervalo de tiempo seleccionado debe ser de 1 minuto como mínimo.
Para datos de 3 a 7 días: El intervalo de tiempo seleccionado debe ser de 5 minutos como mínimo.
Para datos posteriores a 7 días: El intervalo de tiempo seleccionado debe ser de 20 minutos como mínimo.
La opción Quick Filter admite Full Table Scan, Multi-partition Scan, Multiple Remote Executions, Hard Parsing, Error Executions y Retry Executions.
Si los filtros predeterminados no satisfacen sus necesidades, puede hacer clic en Add para agregar más condiciones.
-
Haga clic en el icono
de una columna para ordenar la lista por dicha columna.Haga clic en
para seleccionar las columnas que se mostrarán en la lista.Haga clic en
para descargar la lista.Haga clic en una sentencia SQL para ir a su página de detalles. En la página Overview, puede consultar el texto SQL, los planes de ejecución física, el historial de ejecución de SQL, la información de tablas y la configuración avanzada de la sentencia SQL.
Aggregate in implica ignorar el número de parámetros constantes en la cláusula IN de las sentencias SQL y tratar cada cláusula IN como si tuviera un solo parámetro constante. Siguiendo esta regla, las sentencias SQL se parametrizan y se calcula el SQL ID; las sentencias SQL con el mismo SQL ID se consideran de la misma categoría y se agregan. Si la casilla está seleccionada, las sentencias SQL se mostrarán según Aggregation IN, pero esto no afecta los datos estadísticos.
TopSQL
TopSQL se refiere a las sentencias SQL con el tiempo de respuesta total más largo dentro del intervalo de tiempo seleccionado. Puede realizar las siguientes operaciones relacionadas con TopSQL:
Filtre TopSQL mediante filtros rápidos, como Full Table Scan, Multi-partition Scan y Multiple Remote Executions para localizar rápidamente las sentencias SQL que necesitan optimización.
Haga clic en View Samples en la columna Operation para ver la sentencia SQL.
En la columna Operation de una sentencia SQL específica, haga clic en
y seleccione Set Throttling. Puede marcar varias sentencias SQL para configurar el estrangulamiento en lotes.Haga clic en el signo más (+) delante del texto SQL para ver el último error y el resumen de errores durante el período estadístico.
Marque Aggregate in en la esquina superior derecha de la lista para mostrar las sentencias SQL según Aggregation IN, pero esto no afectará los datos estadísticos. Puede seleccionar varias sentencias SQL (incluidas aquellas con Aggregation IN) para configurar el estrangulamiento en lotes.
Haga clic en View Optimization Recommendation en la esquina superior derecha de la lista para ir al centro de optimización y consultar las sugerencias de optimización.
-
Haga clic en TopSQL Comparison en la esquina superior derecha de la lista para comparar la ejecución de la misma sentencia SQL durante diferentes períodos en el mismo nodo, o durante el mismo período en diferentes nodos, así como la ejecución de una sola sentencia SQL durante diferentes períodos o en diferentes nodos.
Comparación de diferentes períodos: Especifique el período base y el período de comparación. Haga clic en Comparative Analysis para consultar la Comparison of Details y la Comparison of Performance Trends.
Comparación de diferentes nodos: Especifique el nodo base y el nodo de comparación. Haga clic en Comparative Analysis para consultar la Comparison of Details y la Comparison of Response Time Trends.
Comparación de una sola SQL en diferentes períodos: Compare y analice la ejecución de SQL individuales o agregadas durante los períodos base y de comparación, y luego revise el Total Database Time Consumption y las Total Executions.
-
Comparación de una sola SQL en diferentes nodos: Compare y analice la ejecución de SQL individuales o agregadas en diferentes nodos de análisis, y luego revise el Total Database Time Consumption y las Total Executions.
NotaDos sentencias SQL con el mismo SQL ID en la misma base de datos se consideran idénticas.
La comparación de diferentes nodos se realiza únicamente cuando la misma sentencia SQL se ejecuta en distintos nodos. De lo contrario, no se mostrará ningún resultado de comparación.
Para realizar un análisis comparativo de una sola SQL en diferentes períodos o en diferentes nodos, también puede introducir primero el SQL ID y luego seleccionar ... > Single SQL Comparison en la columna Operation para la SQL correspondiente.
-
Haga clic en Customize Column en la esquina superior derecha de la lista para personalizar otras métricas que necesite.
En la ventana emergente, establezca la Column Expression, por ejemplo (@avgCpuTime * @avgDiskReads) / 2.
Introduzca el Column Name.
Haga clic en OK.
Puede diagnosticar el TopSQL de un inquilino específico o de todos los inquilinos en un clúster.

-
Cuando la utilización de CPU de un host es demasiado alta, puede filtrar el TopSQL por base de datos y nodo, y luego ordenar estas sentencias SQL por tiempo de CPU en orden descendente para localizar las sentencias SQL que más necesitan optimización.

SlowSQL
SlowSQL se refiere a sentencias SQL cuyo tiempo de ejecución supera los 500 ms. Puede realizar las siguientes operaciones relacionadas con SlowSQL:
Filtre SlowSQL mediante filtros rápidos, como Full Table Scan, Multi-partition scan y Multiple Remote Executions.
Haga clic en View Samples en la columna Operation para ver la sentencia SQL.
En la columna Operation de una sentencia SQL específica, haga clic en
y seleccione Set Throttling. Puede marcar varias sentencias SQL para configurar el estrangulamiento en lotes.Marque Aggregate in en la esquina superior derecha de la lista para mostrar las sentencias SQL según Aggregation IN, pero esto no afectará los datos estadísticos. Puede seleccionar varias sentencias SQL (incluidas aquellas con Aggregation IN) para configurar el estrangulamiento en lotes.
Para personalizar el umbral de SQL lento, seleccione ... > Modify Slow SQL Threshold en la esquina superior derecha de la lista. En la ventana emergente, ajuste el umbral de SQL lento y luego haga clic en OK.
SQL sospechoso
La pestaña Suspicious SQL muestra SQL Text, SQL ID, Database, Diagnostic Results, entre otros. SQL sospechoso se refiere a sentencias SQL que pueden causar problemas de rendimiento y se filtran según reglas y algoritmos. La siguiente tabla enumera resultados de diagnóstico comunes y sugerencias de solución de problemas.
Resultado del diagnóstico | Sugerencia de solución de problemas |
Hint sin efecto | Indica una sentencia SQL anómala que requiere que el administrador de bases de datos (DBA) determine si debe corregir el plan de ejecución mediante un outline. |
Escaneo completo de tabla con bajo rendimiento | Analice el plan de ejecución y la estructura de la tabla para asegurar que la SQL tenga índices adecuados disponibles. |
Bajo rendimiento a pesar del uso de índices | Compruebe si el rendimiento es aceptable en sus escenarios de negocio. De no ser así, mejore la lógica de negocio u optimice los índices. |
Degradación del rendimiento | Revise cambios en la distribución de datos, aumentos repentinos de solicitudes y modificaciones en el plan de ejecución. |
Cambio de plan acompañado de degradación del rendimiento | Consulte con el DBA. Puede usar un outline para fijar el plan de ejecución y verificar si la sentencia SQL es anómala. |
Picos de ejecución | Revise el volumen de negocio. Un pico en el número de ejecuciones de una sentencia SQL puede provocar una disminución del rendimiento general. |
Carga de CPU excesivamente alta | Revise sus escenarios de negocio, cambios en la distribución de datos, incrementos de solicitudes y modificaciones en el plan de ejecución. |
Sospecha de conflicto de bloqueos | La SQL se está reintentando, lo cual puede deberse a un conflicto de bloqueos. Investigue la lógica de negocio para determinar si existe un escenario de conflicto de bloqueos. |
La sentencia DML accede a demasiadas particiones | Reescriba la sentencia SQL para que admita la poda de particiones. |
Sospecha de tabla búfer | Compruebe si la tabla relacionada se actualiza con frecuencia. |
Posible existencia de cuentas grandes y pequeñas | Compruebe si existe un problema de sesgo de datos. |
Inestabilidad del plan de ejecución | Compruebe si existen problemas de regresión del plan. |
Tiempo de generación del plan demasiado largo | Compruebe si existen problemas como una baja tasa de aciertos del plan. |
SQL de alto riesgo
La pestaña High-risk SQL muestra SQL Text, Database, Cause of Risk, entre otros. SQL de alto riesgo se refiere a sentencias SQL que pueden dañar el rendimiento del sistema, la seguridad y los datos.
La siguiente tabla describe los tipos de SQL de alto riesgo que se pueden identificar.
Operación | Ejemplos | Tipo de riesgo | Descripción |
Agregar o eliminar una columna |
| Cambio de esquema: Se agregan o eliminan columnas | - |
Eliminar una tabla o base de datos |
| Se elimina una tabla o base de datos | - |
Vaciar una tabla |
| Se borra una tabla de datos | - |
Actualización sin condiciones |
| Actualización sin condiciones | - |
Actualización con condición permanentemente verdadera |
| Actualización con condición permanentemente verdadera | - |
Eliminación sin condiciones |
| Eliminación sin condiciones | - |
Eliminación con condición permanentemente verdadera |
| Eliminación con condición permanentemente verdadera | - |
Demasiadas filas devueltas |
| Demasiadas filas devueltas | El parámetro |
Demasiadas filas afectadas |
| Demasiadas filas afectadas | El parámetro |
Demasiadas particiones involucradas |
| Demasiadas particiones involucradas | El parámetro |
Demasiadas condiciones IN | where id in (1,2,3,4,5.....) | Demasiadas condiciones IN | - |
Cambio de índice |
| Cambio de alto riesgo: Cambio de índice | - |
SQL nuevo
SQL nuevo se refiere a sentencias SQL que no se han ejecutado durante un período de tiempo (7 días de forma predeterminada) antes del intervalo de consulta, pero que tienen registros de ejecución dentro de dicho intervalo.
La pestaña Add SQL muestra SQL Text, SQL ID, Database, Total Executions, entre otros.