Monitorare e analizzare le statistiche dell'ottimizzatore

È 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 passare alla sezione Statistiche ottimizzazione, andare alla pagina Dettagli database gestiti e fare clic su Statistiche ottimizzazione nel riquadro sinistro in Risorse.

Informazioni sulle statistiche dell'ottimizzatore

Le statistiche dell'ottimizzatore sono una raccolta di dati che descrivono i dettagli sul database e sugli oggetti in esso inclusi. Le statistiche forniscono un quadro statisticamente corretto dell'archiviazione e della distribuzione dei dati, che viene utilizzato 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 dell'accesso, determina il costo dei piani possibili, quindi preleva il piano di esecuzione con il costo più basso.

Le statistiche dell'ottimizzatore includono:

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

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

  • Statistiche di indice: include il numero di blocchi foglia, i livelli di indice e il fattore di clustering 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 sull'ottimizzazione è la raccolta di statistiche sull'optimizer 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'ottimizzatore 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 significativamente i rischi di generazione di piani di esecuzione non ottimali a causa di statistiche mancanti o non più valide. È inoltre possibile raccogliere manualmente le statistiche utilizzando il pacchetto DBMS_STATS.

Oracle Database 19c introduce la raccolta automatica delle statistiche dell'ottimizzatore ad alta frequenza. Questo task leggero raccoglie periodicamente le statistiche per gli oggetti non più validi e l'intervallo predefinito è 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 gli 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 attività per analizzare come le statistiche dell'ottimizzatore sono attualmente raccolte, l'efficacia dei processi di raccolta delle statistiche esistenti e la qualità delle statistiche raccolte. Optimizer Statistics Advisor gestisce le regole, che incorporano le procedure ottimali di Oracle in base al set di funzioni corrente. In questo modo, il consulente fornisce sempre le raccomandazioni più aggiornate per la raccolta delle statistiche.

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

Monitoraggio riepilogo statistiche dell'ottimizzatore

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

Nella scheda Riepilogo della sezione Statistiche ottimizzazione vengono visualizzate le caselle riportate di seguito e viene fornita una panoramica delle statistiche dell'ottimizzatore.

  • Statistiche degli oggetti: 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 nuove statistiche, statistiche non più valide o nessuna statistica.

  • Task di raccolta delle statistiche: visualizza lo stato e il numero dei 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 attività eseguite in un determinato giorno o il numero di oggetti per i quali sono state raccolte 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'ottimizzatore 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 automatico, manuale o entrambi.

  • Elenco task di raccolta statistiche: visualizza l'elenco dei task di raccolta delle statistiche dell'ottimizzatore negli ultimi sette giorni, insieme alle informazioni riportate di seguito per ciascun task.

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

    • 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'ottimizzatore: 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'ottimizzatore.

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

    È 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 stato specifico oppure per cercare un task specifico. È inoltre possibile fare clic su una determinata barra di stato del task nel grafico a barre Task di raccolta statistiche per visualizzare l'elenco dei task di raccolta delle statistiche dell'optimizer eseguiti in quel determinato giorno. Tenere presente che questa funzionalità non è disponibile se nel grafico a barre Task di raccolta statistiche viene visualizzato lo stato oggetto.

Visualizza dettagli task di raccolta statistiche ottimizzazione

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

  • ANALYZE ANY
  • ANALYZE ANY DICTIONARY

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

  • Informazioni sui task di raccolta statistiche: visualizza le informazioni relative al task di raccolta delle statistiche dell'optimizer.
  • Stato del task secondario di raccolta statistiche: visualizza lo stato dei task secondari eseguiti come parte del task di raccolta delle statistiche dell'ottimizzatore in un grafico a torta.
  • Stato del task secondario di raccolta statistiche per tipo di oggetto: visualizza un'analisi stratificata 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 un elenco di task secondari eseguiti come parte del task di raccolta delle statistiche dell'ottimizzatore.

Analizzare i task di Optimizer Statistics Advisor e implementare i suggerimenti

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

Nota

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

Per verificare se Optimizer Statistics Advisor è abilitato per Autonomous AI Database, eseguire la query seguente:

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

Per abilitare Optimizer Statistics Advisor per Autonomous AI Database, eseguire la query seguente:

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

Nella scheda Advisor della sezione Statistiche ottimizzazione vengono visualizzate le caselle riportate di seguito e viene fornita una panoramica dei task di Optimizer Statistics Advisor.

  • Riepilogo 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 di Optimizer Statistics Advisor eseguiti ogni giorno negli ultimi sette giorni. Ogni barra del grafico indica il numero di attività eseguite 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 l'elenco dei task di Optimizer Statistics Advisor negli ultimi sette giorni, insieme alle informazioni riportate di seguito per ciascun task.

    • Nome esecuzione: il nome dell'esecuzione del task Advisor statistiche dell'ottimizzatore.

    • Nome task: nome del task Advisor statistiche dell'ottimizzatore.

    • Stato: stato del task Advisor statistiche dell'ottimizzatore.

    • Tipo: tipo di task Advisor statistiche dell'ottimizzatore: automatico o manuale.

    • Trovazioni: risultati del task Advisor statistiche dell'ottimizzatore.

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

    • Ora di inizio: ora di inizio del task di Advisor Statistiche dell'ottimizzatore.

    • Messaggio: messaggio, se presente.

È 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 stato specifico oppure cercare un'esecuzione o un task specifico. È inoltre possibile fare clic su una barra di stato task specifica nel grafico a barre Task Advisor per visualizzare l'elenco 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 Optimizer Statistics Advisor nella lista di task Advisor per andare alla pagina Dettagli Advisor statistiche Optimizer.

Nella pagina Dettagli di Optimizer Statistics Advisor vengono visualizzate le caselle riportate di seguito.

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

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

    • Regola: standard fornito da Oracle mediante il quale Optimizer Statistics Advisor esegue i controlli.

    • Ricerca: risultati forniti da Optimizer Statistics Advisor.

    • Suggerimento: suggerimenti forniti da Optimizer Statistics Advisor.

    • Motivazione: motivazione per il suggerimento fornito da Optimizer Statistics Advisor.

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

Dopo aver esaminato i risultati nella pagina Dettagli di Optimizer Statistics Advisor, è 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, procedere come segue.

  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 del job compilato automaticamente e apportare le modifiche necessarie.
      2. Descrizione job: rivedere la descrizione popolata automaticamente del job e apportare le modifiche necessarie.
    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 privilegi riportati di seguito.
        • ANALYZE ANY
        • ANALYZE ANY DICTIONARY
      2. Nome bucket: selezionare il bucket di storage degli oggetti Oracle in cui verrà memorizzato l'output del job. Il bucket di storage degli oggetti Oracle può trovarsi nello stesso compartimento del job o in un altro compartimento e devi disporre delle autorizzazioni del servizio Oracle Cloud Infrastructure Object Storage necessarie per selezionare il bucket. Per ulteriori informazioni, vedere Autorizzazioni aggiuntive richieste per l'uso della diagnostica e della gestione.
    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 gestiti.