Registro de diagnóstico de rendimiento de Intelligent Insights con los problemas de rendimiento de Azure SQL Database e Instancia administrada de Azure SQL

Se aplica a:Azure SQL DatabaseAzure SQL Managed Instance

Esta página proporciona información sobre cómo usar el registro de diagnóstico de rendimiento generado por Intelligent Insights con los problemas de rendimiento de Azure SQL Database e Instancia administrada de Azure SQL, el formato y los datos que contiene según sus necesidades de desarrollo personalizadas. Este registro de diagnóstico se puede enviar a registros de Azure Monitor, Azure Event Hubs, Azure Storage o a una solución de terceros para las funcionalidades personalizadas de informes y alertas de DevOps.

Nota

Intelligent Insights es una característica en vista previa (GB) que no está disponible en las siguientes regiones: Oeste de Europa, Norte de Europa, Oeste de EE. UU. 1 y Este de EE. UU. 1.

Encabezado de registro

El registro de diagnóstico usa el formato estándar de JSON para generar los resultados de Intelligent Insights. La propiedad de categoría exacta para acceder a un registro de Intelligent Insights es el valor fijo "SQLInsights", que no está relacionado con la supervisión de Azure SQL Database con Azure Monitor SQL Insights (versión preliminar).

El encabezado del registro es común y consta de la marca de tiempo (TimeGenerated) que muestra cuándo se creó una entrada. También incluye un identificador de recurso (ResourceId) que hace referencia a la base de datos concreta con la que se relaciona la entrada. La categoría (Category), el nivel (Level) y el nombre de la operación (OperationName) son propiedades fijas cuyos valores no cambian. Indican que la entrada del registro es informativa y que provienen de Intelligent Insights (SQLInsights).

"TimeGenerated" : "2017-9-25 11:00:00", // time stamp of the log entry
"ResourceId" : "database identifier", // value points to a database resource
"Category": "SQLInsights", // fixed property
"Level" : "Informational", // fixed property
"OperationName" : "Insight", // fixed property

Identificador del problema y base de datos afectada

La propiedad de identificación del problema (issueId_d) proporciona un método exclusivo de seguimiento de los problemas de rendimiento hasta su resolución. En el registro que notifica el estado de un mismo problema, varios registros de eventos compartirán el mismo identificador de problema.

Junto con el identificador del problema, el registro de diagnóstico notifica las marcas de tiempo de inicio (intervalStartTime_t) y finalización (intervalEndTme_t) del evento concreto relacionado con un problema notificado en el registro de diagnóstico.

La propiedad de grupo elástico (elasticPoolName_s) indica a qué grupo elástico pertenece la base de datos con un problema. Si la base de datos no forma parte de ningún grupo elástico, esta propiedad no tiene ningún valor. La base de datos en la que se detecta un problema se revela en la propiedad de nombre de la base de datos (databaseName_s).

"intervalStartTime_t": "2017-9-25 11:00", // start of the issue reported time stamp
"intervalEndTme_t":"2017-9-25 12:00", // end of the issue reported time stamp
"elasticPoolName_s" : "", // resource elastic pool (if applicable)
"databaseName_s" : "db_name", // database name
"issueId_d" : 1525, // unique ID of the issue detected
"status_s" : "Active" // status of the issue – possible values: "Active", "Verifying", and "Complete"

Problemas detectados

La sección siguiente del registro de rendimiento de Intelligent insights contiene problemas de rendimiento que se detectaron mediante la inteligencia artificial integrada. Las detecciones se revelan en las propiedades dentro del registro de diagnóstico JSON. Estas detecciones constan de la categoría de un problema, el impacto del problema, las consultas afectadas y las métricas. Las propiedades de las detecciones podrían contener varios problemas de rendimiento que se detectaron.

Los problemas de rendimiento detectados se notifican con la siguiente estructura de propiedad de las detecciones:

"detections_s" : [{
"impact" : 1 to 3, // impact of the issue detected, possible values 1-3 (1 low, 2 moderate, 3 high impact)
"category" : "Detectable performance pattern", // performance issue detected, see the table
"details": <Details outputted> // details of an issue (see the table)
}]

Los patrones de rendimiento detectable y los detalles que se transmiten al registro de diagnóstico se proporcionan en la tabla siguiente.

Categoría de detección

La propiedad de categoría (category) describe la categoría de los patrones de rendimiento detectable. Consulte la siguiente tabla para ver todas las categorías posibles de patrones de rendimiento detectables. Para más información, consulte Troubleshoot database performance issues with Intelligent Insights (Solución de problemas de rendimiento de la base de datos con Intelligent Insights).

En función del problema de rendimiento detectado, los detalles que incluye el archivo de registro de diagnóstico difieren en consecuencia.

Patrones de rendimiento detectables Detalles generados
Alcance de los límites de recursos
  • Recursos afectados
  • Códigos hash de consulta
  • Porcentaje de consumo del recurso
  • Aumento de la carga de trabajo
  • Número de consultas cuya ejecución aumentó
  • Códigos hash de las consultas que contribuyen más al aumento de la carga de trabajo
  • Presión de memoria
  • Distribuidor de memoria
  • Bloqueo
  • Códigos hash de consulta afectados
  • Bloqueo de los códigos hash de consulta
  • Aumento de MAXDOP
  • Códigos hash de consulta
  • Tiempos de espera de CXP
  • Tiempos de espera
  • Contención de Pagelatch
  • Códigos hash de las consultas que provocan la contención
  • Carencia de un índice
  • Códigos hash de consulta
  • Nueva consulta
  • Hash de consulta de las nuevas consultas
  • Estadística de espera inusual
  • Tipos de espera inusuales
  • Códigos hash de consulta
  • Tiempos de espera de la consulta
  • Contención de tempdb
  • Códigos hash de las consultas que provocan la contención
  • Atribución de consultas al tiempo de espera de contención de PAGELATCH de base de datos general [%]
  • Escasez de DTU en el grupo elástico
  • Grupo elástico
  • Base de datos que más consume DTU
  • Porcentaje de DTU de grupo que usa el mayor consumidor
  • Regresión de un plan
  • Códigos hash de consulta
  • Identificadores de planes correctos
  • Identificadores de planes inadecuados
  • Cambio del valor de configuración de ámbito de base de datos
  • Cambios en la configuración de ámbito de base de datos en comparación con los valores predeterminados
  • Cliente lento
  • Códigos hash de consulta
  • Tiempos de espera
  • Degradación del plan de tarifa
  • Notificación de texto
  • Impacto

    La propiedad de impacto (Impact) describe cuánto ha contribuido un comportamiento detectado al problema que tiene una base de datos. Los impactos van de 1 a 3, siendo 3 la contribución más alta, 2 la moderada y 1 la más baja. El valor de impacto podría usarse como entrada para la automatización personalizada de las alertas, en función de sus necesidades específicas. La propiedad de consultas afectadas (QueryHashes) proporciona una lista de los códigos hash de consulta que se vieron afectados por una detección particular.

    Consultas afectadas

    En la sección siguiente del registro de Intelligent Insights se proporciona información sobre consultas concretas que resultaron afectadas por los problemas de rendimiento detectados. Esta información se divulga como una matriz de objetos insertados en la propiedad impact_s. La propiedad de impacto consta de entidades y métricas. Las entidades hacen referencia a una consulta determinada (tipo: consulta). El código hash de consulta única se revela en la propiedad de valor (Value). Además, cada una de las consultas reveladas va seguida de una métrica y un valor, que indican que se detectó un problema de rendimiento.

    En el ejemplo de registro siguiente, se detectó que la consulta con el código hash 0x9102EXZ4 tenía una mayor duración de ejecución (Métrica: DurationIncreaseSeconds). El valor de 110 segundos indica que esta consulta en particular tardó 110 segundos más en ejecutarse. Dado que se pueden detectar varias consultas, esta sección del registro en particular podría incluir varias entradas de consulta.

    "impact" : [{
    "entity" : {
    "Type" : "Query", // type of entity - query
    "Value" : "query hash value", // for example "0x9102EXZ4" query hash value },
    "Metric" : "DurationIncreaseSeconds", // measured metric and the measurement unit (in this case seconds)
    "Value" : 110 // value of the measured metric (in this case seconds)
    }]
    

    Métricas

    La unidad de medida de cada métrica notificada se proporciona en virtud de la propiedad de métrica (Metric) con los valores posibles: segundos, número y porcentaje. El valor de una métrica medida se notifica en la propiedad de valor (Value).

    La propiedad DurationIncreaseSeconds proporciona la unidad de medida en segundos. La unidad de medida CriticalErrorCount es un número que representa un recuento de errores.

    "metric" : "DurationIncreaseSeconds", // issue metric type – possible values: DurationIncreaseSeconds, CriticalErrorCount, WaitingSeconds
    "value" : 102 // value of the measured metric (in this case seconds)
    

    Recomendaciones de mejoras y análisis de la causa principal

    La última parte del registro de rendimiento de Intelligent Insights pertenece al análisis automatizado de la causa principal del problema de degradación de rendimiento identificado. La información aparece en un vocabulario comprensible en la propiedad de análisis de la causa principal (rootCauseAnalysis_s). Siempre que sea posible, se incluyen recomendaciones de mejora en el registro.

    // example of reported root cause analysis of the detected performance issue, in a human-readable format
    
    "rootCauseAnalysis_s" : "High data IO caused performance to degrade. It seems that this database is missing some indexes that could help."
    

    El registro de rendimiento de Intelligent Insights se puede usar con registros de Azure Monitor o una solución de terceros para las funcionalidades personalizadas de informes y alertas de DevOps.

    Pasos siguientes