Informazioni dettagliate prestazioni query per il database SQL di Azure

Si applica a:Database SQL di Azure

Informazioni dettagliate prestazioni query fornisce un'analisi intelligente delle query per i database singoli e in pool. Consente di identificare le query che utilizzano più risorse e con esecuzione più prolungata nel carico di lavoro. Consente anche di trovare le query da ottimizzare per migliorare le prestazioni complessive del carico di lavoro e usare in modo efficiente la risorsa che si sta pagando. Informazioni dettagliate prestazioni query consente di dedicare meno tempo alla risoluzione dei problemi di prestazioni del database offrendo i vantaggi seguenti:​

  • Informazioni più approfondite sul consumo delle risorse del database (DTU)
  • Dettagli sulle query principali del database per CPU, durata e conteggio delle esecuzioni (potenziali candidati per l'ottimizzazione delle prestazioni)
  • La capacità di eseguire il drill-down nei dettagli di una query, visualizzarne il testo e la cronologia dell'utilizzo delle risorse.
  • Annotazioni che mostrano consigli sulle prestazioni da Advisor per database

Query Performance Insight

Prerequisiti

Per Informazioni dettagliate sulle prestazioni delle query è necessario che l' archivio query sia attivo nel database. Per impostazione predefinita, è abilitato automaticamente per tutti i database SQL di Azure. Se Query Store non è in esecuzione, il portale di Azure richiederà di abilitarlo.

Nota

Se nel portale viene visualizzato un messaggio che indica che Query Store non è configurato correttamente nel database, vedere Ottimizzare la configurazione di Query Store.

Autorizzazioni

Sono necessarie le autorizzazioni di controllo degli accessi in base al ruolo di Azure seguenti per usare Informazioni dettagliate prestazioni query:

  • Le autorizzazioni Lettore, Proprietario, Collaboratore, Collaboratore database SQL o Collaboratore SQL Server sono necessarie per visualizzare le query principali a livello di uso delle risorse e i grafici.
  • Le autorizzazioni Proprietario, Collaboratore, Collaboratore database SQL o Collaboratore SQL Server sono necessarie per visualizzare il testo della query.

Usare Informazioni dettagliate prestazioni query

Query Performance Insight è facile da usare:

  1. Aprire il portale di Azure e individuare il database da esaminare.

  2. Dal menu a sinistra aprire Prestazioni intelligenti>Informazioni dettagliate prestazioni query.

    Query Performance Insight on the menu

  3. Nella prima scheda, esaminare l'elenco delle query principali a livello di utilizzo delle risorse.

  4. Selezionare una singola query per visualizzarne i dettagli.

  5. Aprire Prestazioni intelligenti>Raccomandazioni per le prestazioni e verificare se sono disponibili raccomandazioni per le prestazioni. Per altre informazioni sui consigli per le prestazioni predefinite, vedi Advisor per database SQL di Azure.

  6. Usare i dispositivi di scorrimento o le icone dello zoom per modificare l'intervallo osservato.

    Performance dashboard

Nota

Per consentire al database SQL di Azure di eseguire il rendering delle informazioni in Informazioni dettagliate sulle prestazioni delle query, Query Store deve acquisire un paio d'ore di dati. Se il database non ha alcuna attività o Query Store non è attivo in un determinato periodo, i grafici saranno vuoti quando si visualizza tale intervallo di tempo in Informazioni dettagliate prestazioni query. È possibile abilitare Query Store in qualsiasi momento, se non è in esecuzione. Per altre informazioni, vedere Best practices with Query Store (Procedure consigliate per Query Store).

Per consigli sulle prestazioni del database, seleziona Consigli nel riquadro di spostamento Informazioni dettagliate sulle prestazioni delle query.

The Recommendations tab

Esaminare le query principali a livello di uso della CPU

Per impostazione predefinita, alla prima apertura Informazioni dettagliate prestazioni query mostra le cinque query principali a livello di uso della CPU.

  1. Selezionare o deselezionare le singole query per includerle o escluderle dal grafico usando le caselle di controllo.

    La linea superiore visualizza la percentuale DTU complessiva per il database. Le barre mostrano la percentuale di uso della CPU per le query selezionate durante l'intervallo selezionato. Ad esempio, se è selezionata l'opzione Settimana precedente, ogni barra rappresenta un singolo giorno.

    Top queries

    Importante

    La linea DTU visualizzata viene aggregata in base a un valore massimo di consumo per periodi di un'ora. È pensata per consentire solo un confronto generale con le statistiche di esecuzione delle query. In alcuni casi, l'uso DTU può apparire troppo elevato rispetto alle query eseguite, ma la situazione potrebbe essere diversa.

    Ad esempio, se una query raggiunge il limite del 100% di DTU solo per pochi minuti, la linea DTU in Informazioni dettagliate prestazioni query mostrerà un'intera ora di consumo al 100% (come conseguenza del valore massimo aggregato).

    Per un confronto più preciso (fino a 1 minuto), è consigliabile creare un grafico dell'uso DTU personalizzato:

    1. Nel portale di Azure selezionare Database SQL di Azure>Monitoraggio.
    2. Selezionare Metriche.
    3. Selezionare +Aggiungi grafico.
    4. Selezionare la percentuale DTU nel grafico.
    5. Inoltre, selezionare Ultime 24 ore nel menu superiore sinistro e impostare l'opzione su un minuto.

    Usare il grafico DTU personalizzato con un maggiore livello di dettaglio per eseguire confronti con il grafico di esecuzione delle query.

    La griglia inferiore mostra informazioni aggregate per le query visibili:

    • ID query, ovvero un identificatore univoco per la query nel database.
    • Uso della CPU per query durante un intervallo osservabile, che dipende dalla funzione di aggregazione.
    • Durata per ogni query, che anche in questo caso dipende dalla funzione di aggregazione.
    • Numero totale di esecuzioni per una query specifica.
  2. Se i dati non sono aggiornati, selezionare il pulsante Aggiorna.

  3. Usare i dispositivi di scorrimento e i pulsanti dello zoom per modificare l'intervallo di osservazione ed esaminare i picchi nel consumo:

    Sliders and zoom buttons for changing the interval

  4. Facoltativamente, è possibile selezionare la scheda Personalizzato per personalizzare la visualizzazione per:

    • Metrica (CPU, durata, conteggio delle esecuzioni).
    • Intervallo di tempo (ultime 24 ore, ultima settimana, ultimo mese).
    • Numero di query.
    • Funzione di aggregazione.

    Custom tab

  5. Seleziona il pulsante Vai > per accedere alla visualizzazione personalizzata.

    Importante

    Informazioni dettagliate prestazioni query supporta la visualizzazione solo delle prime 5-20 query a livello di uso, a seconda della selezione. Il database può eseguire molte altre query oltre a quelle principali visualizzate e tali query non verranno incluse nel grafico.

    Potrebbe essere presente un tipo di carico di lavoro del database in cui numerose query di piccole dimensioni, oltre a quelle principali visualizzate, vengono eseguite di frequente e usano la maggior parte delle DTU. Queste query non vengono mostrate nel grafico delle prestazioni.

    Ad esempio, una query potrebbe aver usato una notevole quantità di DTU per un certo periodo di tempo, anche se il consumo totale nel periodo osservato è minore di altre query principali. In tal caso, l'uso delle risorse di questa query non sarà visibile nel grafico.

    Se è necessario comprendere le esecuzioni delle query principali oltre i limiti di Informazioni dettagliate sulle prestazioni delle query, è consigliabile usare Dati analitici di Azure SQL per monitoraggio delle prestazioni e risoluzione dei problemi del database avanzati.

Visualizzare i dettagli delle singole query

Per visualizzare i dettagli relativi alle query:

  1. Selezionare qualsiasi query nell'elenco delle query principali.

    List of top queries

    Verrà aperta una visualizzazione dettagliata. Tale visualizzazione mostra l'uso della CPU, la durata e il conteggio delle esecuzioni nel corso del tempo.

  2. Selezionare le funzionalità del grafico per informazioni dettagliate.

    • Il grafico superiore mostra una linea con la percentuale DTU complessiva per il database. Le barre rappresentano la percentuale CPU usata dalla query selezionata.
    • Nel secondo grafico viene mostrata la durata totale della query selezionata.
    • Nel grafico in fondo viene mostrato il numero totale delle esecuzioni effettuate dalla query selezionata.

    Query details

  3. Facoltativamente, usare i dispositivi di scorrimento, i pulsanti dello zoom oppure fare clic su Impostazioni per personalizzare la modalità di visualizzazione dei dati della query o per mostrare un intervallo di tempo diverso.

    Importante

    Informazioni dettagliate prestazioni query non acquisisce le query DDL. In alcuni casi, potrebbe non acquisire tutte le query ad hoc.

    Se l'ambito del database è bloccato con un blocco di sola lettura, il riquadro Dettagli della query non sarà in grado di caricare.

Esaminare le query principali in base alla durata

Due metriche in Informazioni dettagliate prestazioni query consentono di individuare i potenziali colli di bottiglia: durata e conteggio delle esecuzioni.

Le query con esecuzione prolungata hanno le maggiori probabilità di bloccare gli altri utenti e le risorse più a lungo, nonché di limitare la scalabilità. Sono anche i candidati ideali per l'ottimizzazione. Per altre informazioni, vedi Riconoscimento e risoluzione dei problemi di blocco di Azure SQL.

Per identificare le query con esecuzione prolungata:

  1. Aprire la scheda Personalizzato in Informazioni dettagliate prestazioni query per il database selezionato.

  2. Impostare le metriche su Durata.

  3. Selezionare il numero di query e l'intervallo di osservazione.

  4. Selezionare la funzione di aggregazione:

    • Somma esegue la somma del tempo di esecuzione di tutte le query durante l'intero intervallo di osservazione.
    • Max individua le query con il tempo di esecuzione massimo durante l'intero intervallo di osservazione.
    • Media rileva il tempo medio di esecuzione di tutte le query e mostra i valori medi più alti tra quelli rilevati.

    Query duration

  5. Seleziona il pulsante Vai > per accedere alla visualizzazione personalizzata.

    Importante

    Regolando la visualizzazione della query, la linea DTU non viene aggiornata. La linea DTU mostra sempre il valore massimo di consumo per l'intervallo.

    Per comprendere più in dettaglio il consumo di DTU del database (fino a 1 minuto), è consigliabile creare un grafico personalizzato nel portale di Azure:

    1. Selezionare Database SQL di Azure>Monitoraggio.
    2. Selezionare Metriche.
    3. Selezionare +Aggiungi grafico.
    4. Selezionare la percentuale DTU nel grafico.
    5. Inoltre, selezionare Ultime 24 ore nel menu superiore sinistro e impostare l'opzione su un minuto.

    È consigliabile usare il grafico DTU personalizzato per eseguire un confronto con il grafico delle prestazioni delle query.

Esaminare le query principali in base al conteggio delle esecuzioni

Un'applicazione utente che usa il database potrebbe rallentare, anche se un numero elevato di esecuzioni potrebbe non influire sul database stesso e l'uso delle risorse è limitato.

In alcuni casi, un conteggio di esecuzioni molto elevato potrebbe causare l'aumento dei round trip di rete. I round trip influiscono sulle prestazioni. Sono soggetti alla latenza di rete e alla latenza di server downstream.

Ad esempio, molti siti Web basati sui dati accedono in maniera massiccia al database per tutte le richieste dell'utente. Anche se il pool di collegamenti è di supporto, il traffico di rete e il carico di elaborazione aumentati sul server possono rallentare le prestazioni. In generale, mantenere i round trip al minimo.

Per identificare le query eseguite di frequente ("chatty"):

  1. Aprire la scheda Personalizzato in Informazioni dettagliate prestazioni query per il database selezionato.

  2. Impostare le metriche su Conteggio delle esecuzioni.

  3. Selezionare il numero di query e l'intervallo di osservazione.

  4. Seleziona il pulsante Vai > per accedere alla visualizzazione personalizzata.

    Query execution count

Informazioni sulle annotazioni di ottimizzazione delle prestazioni

Durante l'esplorazione del carico di lavoro in Informazioni dettagliate prestazioni query, è possibile notare la presenza di icone con una linea verticale nella parte superiore del grafico.

Queste icone sono annotazioni. Mostrano consigli sulle prestazioni da Advisor per database SQL di Azure. Passando il puntatore su un'annotazione, è possibile ottenere informazioni riepilogative sulle raccomandazioni per le prestazioni.

Query annotation

Per ottenere altre informazioni o applicare le raccomandazioni di Advisor, selezionare l'icona per aprire i dettagli dell'azione consigliata. Se si tratta di una raccomandazione attiva, è possibile applicarla direttamente dal portale.

Query annotation details

In alcuni casi, a causa del livello di zoom, è possibile che le annotazioni vicine tra loro vengano compresse in una singola annotazione. Informazioni dettagliate prestazioni query rappresenta gli elementi come un'icona di annotazione di gruppo. Selezionando l'icona di un'annotazione di gruppo, viene aperto un nuovo riquadro che elenca le annotazioni.

Correlare le query e le azioni di ottimizzazione delle prestazioni può servire ad avere una migliore comprensione del carico di lavoro.

Configurazione ottimale di Query Store

Durante l'uso di Informazioni dettagliate prestazioni query, possono essere visualizzati messaggi di errore di Query Store simili ai seguenti:

  • "Archivio query non è correttamente configurato in questo database. Per altre informazioni, fare clic qui."
  • "Archivio query non è correttamente configurato in questo database. Fare clic qui per modificare le impostazioni."

Questi messaggi in genere vengono visualizzati quando Query Store non è in grado di raccogliere nuovi dati.

Il primo caso si verifica quando Query Store è in stato di sola lettura e i parametri sono impostati in modo ottimale. È possibile risolvere il problema aumentando le dimensioni dell'archivio dati o svuotando Query Store. Se si svuota Query Store, tutti i dati di telemetria raccolti in precedenza andranno persi.

Query Store details

Il secondo caso si verifica quando Query Store non è abilitato o se i parametri non sono impostati in modo ottimale. È possibile modificare i criteri di conservazione e acquisizione e anche abilitare Query Store eseguendo i comandi T-SQL seguenti forniti dall’editor di query del portale di Azure, SQL Server Management Studio (SSMS), Azure Data Studio, sqlcmd, o un altro strumento client a scelta.

Esistono due tipi di criteri di conservazione:

  • Basato sulle dimensioni: se questo criterio è impostato su AUTO, la pulizia dei dati avverrà automaticamente al raggiungimento delle dimensioni massime.
  • Basato sul tempo: per impostazione predefinita, questo criterio è impostato su 30 giorni. Se Query Store esaurisce lo spazio, verranno eliminate le informazioni sulle query più vecchie di 30 giorni.

È possibile impostare i criteri di acquisizione su:

  • Tutte: Query Store acquisisce tutte le query.
  • Auto: Query Store ignora le query poco frequenti e con durata di compilazione ed esecuzione trascurabile. Le soglie per il conteggio delle esecuzioni e la durata di compilazione ed esecuzione vengono stabilite internamente. Si tratta dell'opzione predefinita.
  • Nessuna: Query Store interrompe l'acquisizione di nuove query, ma continua a raccogliere le statistiche di runtime per le query già acquisite.

È consigliabile impostare tutti i criteri su AUTOMATICO e i criteri di pulizia su 30 giorni eseguendo i comandi seguenti da SSMS o dal portale di Azure. Sostituire YourDB con il nome del database.

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

Per aumentare le dimensioni di Query Store, connettersi a un database tramite SSMS o il portale di Azure ed eseguire la query seguente. Sostituire YourDB con il nome del database.

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

Applicando queste impostazioni, Query Store raccoglierà i dati di telemetria per le nuove query. Se è necessario che Query Store sia subito operativo, è possibile scegliere di svuotare Query Store eseguendo la query seguente tramite SSMS o il portale di Azure. Sostituire YourDB con il nome del database.

Nota

Eseguendo la query seguente, verranno eliminati tutti i dati di telemetria monitorati raccolti in precedenza in Query Store.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Passaggi successivi

È consigliabile usare Analisi SQL di Azure per il monitoraggio delle prestazioni avanzato di un numero elevato di database in pool e singoli, pool elastici, istanze gestite e database dell’istanza.