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 Azure Istanza 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 | |
Aumento del carico di lavoro | |
Utilizzo elevato della memoria | |
Blocco | |
Valore di MAXDOP aumentato | |
Contesa di latch di pagina | |
Indice mancante | |
Nuova query | |
Statistiche di attesa non comune | |
tempdb Contesa |
|
Carenza di DTU nel pool elastico | |
Regressione di piani | |
Modifica del valore di configurazione in ambito database | |
Client lento | |
Downgrade del piano tariffario |
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
- Informazioni sui concetti di Intelligent Insights.
- Informazioni su come risolvere i problemi di riduzione delle prestazioni con Intelligent Insights.
- Informazioni su come monitorare i problemi di riduzione delle prestazioni usando Analisi SQL di Azure.
- Informazioni su come raccogliere e usare i dati dei log dalle risorse di Azure.