Monitorare e analizzare le statistiche dell'ottimizzazione

È possibile monitorare le statistiche dell'optimizer per un database gestito, analizzare i task di raccolta delle statistiche e i task di Optimizer Statistics Advisor e implementare i suggerimenti di Optimizer Statistics Advisor in Diagnostica e gestione di Gestione database.

Per andare alla sezione Statistiche dell'ottimizzatore, andare alla pagina Dettagli del database gestito e fare clic su Statistiche dell'ottimizzatore nel riquadro sinistro in Risorse.

Informazioni sulle statistiche dell'optimizer

Le statistiche dell'ottimizzatore sono una raccolta di dati che descrivono i dettagli relativi al database e agli oggetti nel database. Le statistiche forniscono un'immagine statisticamente corretta della memorizzazione e della distribuzione dei dati, utilizzata dall'ottimizzatore durante la valutazione dei percorsi di accesso. L'ottimizzatore utilizza le statistiche per ottenere una stima del numero di righe (e del numero di byte) recuperate da una tabella, una partizione o un indice. L'ottimizzatore stima il costo per l'accesso, determina il costo per i possibili piani, quindi seleziona il piano di esecuzione con il costo più basso.

Le statistiche dell'ottimizzatore includono:

  • Statistiche di tabella: include il numero di righe, il numero di blocchi e la lunghezza media per riga.

  • Statistiche di colonna: include il numero di valori distinti e nulli in una colonna e la distribuzione dei dati.

  • statali di indice: include il numero di blocchi foglia, i livelli di indice e il fattore di configurazione cluster di indice.

  • Statistiche di sistema: include le prestazioni e l'utilizzo di CPU e I/O.

Per ulteriori informazioni sui singoli elementi, vedere i riferimenti riportati di seguito.

Informazioni sulla raccolta delle statistiche dell'optimizer

In Oracle Database, la raccolta di statistiche dell'ottimizzatore è la raccolta di statistiche dell'ottimizzatore per gli oggetti di database, inclusi gli oggetti fissi. Per impostazione predefinita, Oracle Database utilizza la raccolta automatica delle statistiche dell'optimizer. In questo caso, il database esegue automaticamente DBMS_STATS per raccogliere le statistiche dell'optimizer per tutti gli oggetti dello schema per i quali le statistiche sono mancanti o non più valide. Il processo elimina molte attività manuali associate alla gestione dell'ottimizzatore e riduce notevolmente i rischi di generare piani di esecuzione non ottimali a causa di statistiche mancanti o non più valide. È anche possibile raccogliere le statistiche manualmente utilizzando il pacchetto DBMS_STATS.

Oracle Database 19c introduce la raccolta automatica di statistiche dell'ottimizzatore ad alta frequenza. Questo task leggero raccoglie periodicamente le statistiche relative agli oggetti non più validi e l'intervallo predefinito è di 15 minuti. A differenza del job di raccolta automatica delle statistiche, il task ad alta frequenza non esegue azioni quali la rimozione delle statistiche per oggetti inesistenti o il richiamo di Optimizer Statistics Advisor.

Per informazioni su:

Informazioni su Optimizer Statistics Advisor

Optimizer Statistics Advisor è un software di diagnostica integrato che esegue task per analizzare il modo in cui le statistiche dell'optimizer sono attualmente raccolte, l'efficacia dei job di raccolta delle statistiche esistenti e la qualità delle statistiche raccolte. Optimizer Statistics Advisor gestisce le regole che incorporano le procedure ottimali Oracle in base al set di funzioni corrente. In questo modo, il consulente fornisce sempre i consigli più aggiornati per la raccolta di statistiche.

Per ulteriori informazioni su Optimizer Statistics Advisor, vedere About Optimizer Statistics Advisor in Oracle Database SQL Tuning Guide.

Monitorare il riepilogo delle statistiche dell'ottimizzazione

È possibile monitorare un riepilogo delle statistiche degli oggetti nel database gestito e i task e i task secondari eseguiti per raccogliere le statistiche dell'optimizer.

Le caselle riportate di seguito vengono visualizzate nella scheda Riepilogo della sezione Statistiche dell'ottimizzatore e forniscono una panoramica delle statistiche dell'ottimizzatore.

  • Statistiche oggetto: visualizza le statistiche correnti raccolte per gli oggetti nel database gestito. Questo grafico a torta fornisce un'analisi dettagliata del numero di oggetti per i quali sono state raccolte statistiche aggiornate, statistiche non più valide o nessuna statistica.

  • Task di raccolta delle statistiche: visualizza lo stato e il numero di task di raccolta delle statistiche dell'optimizer oppure lo stato e il numero degli oggetti di database per i quali vengono raccolte le statistiche ogni giorno, negli ultimi sette giorni. Ogni barra del grafico indica il numero di task eseguiti in un determinato giorno o il numero di oggetti per i quali sono state raccolte le statistiche in un determinato giorno e il colore indica lo stato. Per impostazione predefinita, questo grafico a barre fornisce una panoramica del numero di task di raccolta automatica delle statistiche dell'optimizer suddivisi per stato. Selezionare l'opzione Stato oggetto nell'elenco a discesa Visualizza per per visualizzare il numero di oggetti per i quali sono state raccolte le statistiche. È inoltre possibile selezionare un'opzione nell'elenco a discesa Tipo per visualizzare il numero di task o oggetti in base al meccanismo utilizzato per raccogliere le statistiche, ad esempio automatiche, manuali o entrambe.

  • Elenco di task di raccolta delle statistiche: visualizza la lista di task di raccolta delle statistiche dell'optimizer negli ultimi sette giorni, insieme alle informazioni riportate di seguito per ogni task.

    • Nome task: nome del task di raccolta delle statistiche dell'optimizer.

    • Stato: stato del task di raccolta delle statistiche dell'optimizer.

    • Ambito: ambito del task di raccolta delle statistiche dell'optimizer, ad esempio Database, Schema, Indice o Tabella.

    • Tipo: tipo di task di raccolta delle statistiche dell'optimizer: Automatico o Manuale.

    • Destinazione: destinazione in cui è stato eseguito il task di raccolta delle statistiche dell'optimizer.

    • Oggetti: numero totale di oggetti di database sottoposti a scansione e numero di oggetti di database per i quali è stato completato il task di raccolta delle statistiche dell'optimizer.

    • Durata: durata del task di raccolta delle statistiche dell'optimizer.

    • Ora di inizio: ora di inizio del task di raccolta delle statistiche dell'optimizer.

    È possibile utilizzare gli elenchi a discesa e i campi sopra l'elenco dei task di raccolta delle statistiche dell'ottimizzatore per filtrare i task in base a un tipo o a uno stato specifico oppure per cercare un task specifico. È inoltre possibile fare clic su una particolare barra di stato del task nel grafico a barre Task di raccolta statistiche per visualizzare la lista dei task di raccolta delle statistiche dell'optimizer eseguiti in un determinato giorno. Si noti che questa funzionalità non è disponibile se il grafico a barre Stato oggetto è visualizzato nel grafico Task di raccolta statistiche.

Visualizza dettagli task di raccolta statistiche dell'ottimizzatore

Fare clic sul nome del task nell'elenco di task di raccolta statistiche per andare alla pagina Dettagli task di raccolta statistiche. Per visualizzare i dettagli del task di raccolta delle statistiche dell'optimizer, è necessario disporre dei privilegi riportati di seguito.

  • ANALYZE ANY
  • ANALYZE ANY DICTIONARY

Nella pagina Dettagli task di raccolta statistiche vengono visualizzate le caselle riportate di seguito.

  • Informazioni sul task di raccolta statistiche: visualizza le informazioni relative al task di raccolta delle statistiche dell'optimizer.
  • Stato task secondari di raccolta statistiche: visualizza lo stato dei task secondari eseguiti nell'ambito del task di raccolta delle statistiche dell'optimizer in un grafico a torta.
  • Stato dei task secondari di raccolta statistiche per tipo di oggetto: visualizza un'analisi dello stato dei task secondari per tipo di oggetto di database in un grafico a barre. Ogni barra del grafico indica un tipo di oggetto di database e il colore indica lo stato del task secondario.
  • Task secondari di raccolta statistiche: visualizza una lista di task secondari eseguiti nell'ambito del task di raccolta delle statistiche dell'optimizer.

Analizza task di Advisor statistiche dell'ottimizzatore e implementa suggerimenti

È possibile monitorare e analizzare i task di Optimizer Statistics Advisor e implementare i suggerimenti di Optimizer Statistics Advisor.

Nota

Per i database autonomi, Optimizer Statistics Advisor è disabilitato per impostazione predefinita e la scheda Advisor non visualizza i dati.

Per verificare se Optimizer Statistics Advisor è abilitato per i database autonomi, eseguire la query seguente:

select dbms_stats.get_prefs('AUTO_STATS_ADVISOR_TASK') from dual;

Per abilitare Optimizer Statistics Advisor per i database autonomi, eseguire la query seguente:

exec dbms_stats.set_global_prefs('AUTO_STATS_ADVISOR_TASK','TRUE');

Le caselle riportate di seguito vengono visualizzate nella scheda Advisor della sezione Statistiche dell'optimizer e forniscono una panoramica dei task di Optimizer Statistics Advisor.

  • Sintetico task: visualizza lo stato dei task di Optimizer Statistics Advisor eseguiti negli ultimi sette giorni.

  • Task Advisor: visualizza lo stato e il numero dei task Advisor statistiche dell'optimizer eseguiti ogni giorno negli ultimi sette giorni. Ogni barra del grafico indica il numero di task eseguiti in un determinato giorno e il colore indica lo stato. Per impostazione predefinita, questo grafico a barre fornisce una panoramica del numero di task automatici di Optimizer Statistics Advisor suddivisi per stato. Selezionare un'opzione nell'elenco a discesa Tipo per visualizzare i task di Optimizer Statistics Advisor in base al meccanismo utilizzato per raccoglierli, ad esempio automatico, manuale o entrambi.

  • Elenco di task Advisor: visualizza la lista dei task di Optimizer Statistics Advisor negli ultimi sette giorni, insieme alle informazioni riportate di seguito per ogni task.

    • Nome esecuzione: il nome dell'esecuzione del task di Optimizer Statistics Advisor.

    • Nome task: il nome del task di Optimizer Statistics Advisor.

    • Stato: stato del task di Optimizer Statistics Advisor.

    • Tipo: tipo di task Advisor statistiche dell'optimizer: Automatico o Manuale.

    • Ricerche: risultati del task di Optimizer Statistics Advisor.

    • Durata: durata del task Advisor statistiche dell'optimizer.

    • Ora di inizio: ora di inizio del task di Optimizer Statistics Advisor.

    • Messaggio: l'eventuale messaggio.

È possibile utilizzare gli elenchi a discesa e i campi sopra l'elenco dei task di Optimizer Statistics Advisor per filtrare i task in base a un tipo o a uno stato specifico oppure cercare un'esecuzione o un task specifico. È inoltre possibile fare clic su una particolare barra di stato del task nel grafico a barre Task advisor per visualizzare la lista dei task di Optimizer Statistics Advisor eseguiti in quel determinato giorno.

Implementa suggerimenti di Optimizer Statistics Advisor

Fare clic sul nome di esecuzione del task di Optimizer Statistics Advisor nell'elenco di task Advisor per andare alla pagina Dettagli di Optimizer Statistics Advisor.

Nella pagina Dettagli Advisor statistiche dell'ottimizzatore vengono visualizzate le caselle riportate di seguito.

  • Informazioni su Optimizer Statistics Advisor: visualizza le informazioni relative al task di Optimizer Statistics Advisor.

  • Risultati di Optimizer Statistics Advisor: visualizza i risultati del task di Optimizer Statistics Advisor insieme alle informazioni riportate di seguito.

    • Regola: lo standard fornito da Oracle in base al quale Optimizer Statistics Advisor esegue i controlli.

    • Ricerca: risultati forniti da Optimizer Statistics Advisor.

    • Suggerimento: suggerimenti forniti da Optimizer Statistics Advisor.

    • Motivo: motivazioni per il suggerimento fornito da Optimizer Statistics Advisor.

    • Dettagli: fare clic sull'icona Azioni (Azioni) per visualizzare ulteriori dettagli sulla ricerca e un esempio dello script che può essere utilizzato per implementare il suggerimento.

Dopo aver esaminato i risultati nella pagina Dettagli Advisor statistiche dell'ottimizzatore, è possibile creare un job per implementare tutti i suggerimenti.

Nota

Se l'utente del database non dispone dei privilegi necessari, è possibile che i risultati non vengano visualizzati nella pagina Dettagli di Optimizer Statistics Advisor e che il pulsante Implementa tutti i suggerimenti non sia disponibile anche se sono presenti risultati per il task. Si consiglia di impostare la credenziale di diagnostica avanzata su un utente con i privilegi richiesti. Per informazioni, vedere Imposta credenziali preferenziali in Diagnostica e gestione.

Per implementare i suggerimenti di Optimizer Statistics Advisor, effettuare le operazioni riportate di seguito.

  1. Fare clic su Implementa tutti i suggerimenti nella sezione Risultati di Optimizer Statistics Advisor.
  2. Nel pannello Implementa tutti i suggerimenti:
    1. Fornire le informazioni riportate di seguito per creare un job per implementare i suggerimenti.
      1. Nome job: rivedere il nome popolato automaticamente del job e apportare le relative modifiche, se necessario.
      2. Descrizione job: rivedere la descrizione popolata automaticamente del job e apportare le relative modifiche, se necessario.
    2. Specificare i parametri del job:
      1. Tipo di credenziale: selezionare una delle opzioni disponibili per specificare le credenziali del database per la connessione al database gestito. Per informazioni sui tipi di credenziali, vedere Usa credenziali per eseguire task di diagnostica e gestione.
        Nota

        Per sottomettere il job per implementare i suggerimenti, l'utente specificato deve disporre dei seguenti privilegi:
        • ANALYZE ANY
        • ANALYZE ANY DICTIONARY
      2. Nome bucket: selezionare il bucket dello storage degli oggetti Oracle in cui verrà memorizzato l'output del job. Il bucket dello storage degli oggetti Oracle può trovarsi nello stesso compartimento del job o in un altro compartimento e per selezionare il bucket è necessario disporre delle autorizzazioni del servizio Oracle Cloud Infrastructure Object Storage necessarie. Per ulteriori informazioni, vedere Additional Permissions Required to Use Diagnostics & Management.
    3. È inoltre possibile fare clic su Mostra SQL per visualizzare l'istruzione SQL che verrà eseguita.
    4. Fare clic su Implementa tutti i suggerimenti.

Tutti i suggerimenti di Optimizer Statistics Advisor verranno ora implementati ed è possibile monitorare questo job nella sezione Job della pagina Dettagli database gestito.