Usare il log di diagnostica generato da Intelligent Insights per rilevare i problemi di riduzione delle prestazioni del database SQL di Azure e dell’Istanza gestita di SQL di Azure

Si applica a:Database SQL di AzureIstanza gestita di SQL di Azure

Questo articolo spiega come usare il log di diagnostica generato da Intelligent Insights per rilevare i problemi di riduzione delle prestazioni del database SQL di Azure e dell’Istanza gestita di SQL di Azure. Ne illustra anche il formato e i dati in esso contenuti per chi ha esigenze di sviluppo personalizzato. Il log di diagnostica può essere inviato al Log di Monitoraggio di Azure, Hub eventi di Azure, Archiviazione di Azure, oppure a una soluzione di terze parti per funzionalità di avvisi e report di DevOps personalizzate.

Nota

Intelligent Insights è una funzionalità di anteprima non disponibile nelle seguenti aree: Europa occidentale, Europa settentrionale, Stati Uniti occidentali 1 e Stati Uniti orientali 1.

Intestazione del log

Il log di diagnostica usa il formato JSON standard per restituire i risultati di Intelligent Insights. La proprietà di categoria corretta per l'accesso a un log di Intelligent Insights è il valore fisso "SQLInsights", non correlato al monitoraggio database SQL di Azure con SQL Insights di Monitoraggio di Azure (anteprima).

L'intestazione del log è comune ed è costituita dal timestamp (TimeGenerated) che indica quando è stata creata una voce e che include un ID di risorsa (ResourceId) che fa riferimento a un determinato database a cui è correlata la voce. Categoria (Category), livello (Level) e nome operazione (OperationName) sono proprietà fisse il cui valore non cambia. Indicano che la voce nel log è informativa e che deriva da 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

ID del problema e database interessato

La proprietà relativa all'identificazione del problema (issueId_d) rappresenta un modo per tenere traccia in modo univoco dei problemi di prestazioni fino a quando non vengono risolti. Più record di eventi nel log che segnalano lo stato dello stesso problema condividono lo stesso ID del problema.

Insieme all'ID del problema, il log di diagnostica segnala i timestamp di inizio (intervalStartTime_t) e di fine (intervalEndTme_t) dell'evento specifico correlato a un problema segnalato nel log di diagnostica.

La proprietà relativa al pool elastico (elasticPoolName_s) indica a quale pool elastico appartiene il database con il problema. Se il database non fa parte di un pool elastico, questa proprietà non include alcun valore. Il database in cui è stato rilevato un problema viene specificato nella proprietà relativa al nome del database (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"

Problemi rilevati

La sezione successiva del log delle prestazioni di Intelligent Insights contiene i problemi di riduzione delle prestazioni rilevati tramite l'intelligenza artificiale integrata. I rilevamenti vengono forniti nelle proprietà all'interno del log di diagnostica JSON. Questi rilevamenti consistono nella categoria di un problema, l'impatto dei problemi, le query interessate e le metriche. Le proprietà relative ai rilevamenti possono contenere più problemi di prestazioni rilevati.

I problemi di prestazioni rilevati vengono segnalati con la struttura della proprietà relativa ai rilevamenti seguente:

"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)
}]

Nella tabella seguente vengono descritti i dettagli e i modelli di prestazioni rilevabili restituiti nel log di diagnostica.

Categoria di rilevamento

La proprietà relativa alla categoria (Category) descrive la categoria dei modelli di prestazioni rilevabili. Vedere la tabella seguente per tutte le possibili categorie di modelli di prestazioni rilevabili. Per altre informazioni, vedere Risolvere i problemi di riduzione delle prestazioni del database SQL di Azure con Intelligent Insights.

I dettagli restituiti nel file del log di diagnostica variano a seconda del problema di prestazioni rilevato.

Modelli di prestazioni rilevabili Dettagli restituiti
Raggiungimento dei limiti delle risorse
  • Risorse interessate
  • Hash di query
  • Percentuale consumo di risorse
  • Aumento del carico di lavoro
  • Numero di query la cui esecuzione è aumentata
  • Hash di query di query con il maggiore contributo all'aumento del carico di lavoro
  • Utilizzo elevato della memoria
  • Clerk di memoria
  • Blocco
  • Hash di query interessati
  • Hash di query di blocco
  • Valore di MAXDOP aumentato
  • Hash di query
  • Tempi di attesa CXP
  • Tempi di attesa
  • Contesa di latch di pagina
  • Hash di query di query che causano contesa
  • Indice mancante
  • Hash di query
  • Nuova query
  • Hash di query di nuove query
  • Statistiche di attesa non comune
  • Tipi di attesa non comune
  • Hash di query
  • Tempi di attesa della query
  • tempdb Contesa
  • Hash di query di query che causano contesa
  • Attribuzione di query al tempo di attesa complessivo per la contesa di latch di pagina del database [%]
  • Carenza di DTU nel pool elastico
  • Pool elastico
  • Database con uso di DTU maggiore
  • Percentuale di DTU del pool usata dalla risorsa che consuma maggiormente
  • Regressione di piani
  • Hash di query
  • ID di piano appropriato
  • ID di piano non appropriato
  • Modifica del valore di configurazione in ambito database
  • Modifiche di configurazione in ambito database rispetto ai valori predefiniti
  • Client lento
  • Hash di query
  • Tempi di attesa
  • Downgrade del piano tariffario
  • Notifica di testo
  • Impatto

    La proprietà relativa all'impatto (Impact) indica quanto di un comportamento rilevato ha contribuito a generare il problema nel database. Il valore è compreso tra 1 e 3, dove 3 rappresenta il contributo massimo, 2 un contributo moderato e 1 un contributo minimo. Il valore di impatto può essere usato come input per l'automazione degli avvisi personalizzati, a seconda delle esigenze specifiche. La proprietà relativa alle query interessate (QueryHashes) specifica un elenco di hash di query che sono stati interessati dal rilevamento specifico.

    Query interessate

    La sezione successiva del log di Intelligent Insights include informazioni sulle query specifiche che sono state interessate dai problemi di prestazioni rilevati. Queste informazioni vengono presentate come matrice di oggetti incorporati nella proprietà impact_s. La proprietà relativa all'impatto è costituita da entità e metriche. Le entità si riferiscono a una query specifica (Type: Query). L'hash di query univoco viene presentato come valore della proprietà (Value). Ognuna delle query fornite è inoltre seguita da una metrica e un valore che indica un problema di prestazioni rilevato.

    Nell'esempio di log seguente è possibile notare che la query con hash 0x9102EXZ4 ha mostrato un aumento della durata di esecuzione (metrica: DurationIncreaseSeconds). Il valore pari a 110 secondi indica che l'esecuzione di questa particolare query ha richiesto 110 secondi in più. È possibile rilevare più query in quanto questa specifica sezione del log può includere più voci di query.

    "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)
    }]
    

    Metrica

    L'unità di misura per ogni metrica segnalata viene indicata nella proprietà relativa alla metrica (metric) con i valori possibili: secondi, numero e percentuale. Il valore di una metrica misurata viene restituito nella proprietà relativa al valore (value).

    La proprietà DurationIncreaseSeconds indica l'unità di misura in secondi. Per CriticalErrorCount l'unità di misura è un numero che rappresenta un conteggio di errori.

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

    Analisi delle cause radice dei problemi e consigli per migliorare

    L'ultima parte del log delle prestazioni di Intelligent Insights riguarda l'analisi automatica delle cause radice del problema di diminuzione delle prestazioni identificato. Le diciture sono di semplice comprensione e sono presenti tramite la proprietà relativa all'analisi delle cause radice (rootCauseAnalysis_s). I consigli di miglioramento sono inclusi nel log, ove possibile.

    // 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."
    

    Questo log di diagnostica di Intelligent Insights può essere usato con Log di Monitoraggio di Azure o una soluzione di terze parti per usufruire delle funzionalità di avvisi e creazione report DevOps personalizzate.

    Passaggi successivi