Analizzare SQL con SQL tuning advisor

È possibile utilizzare SQL tuning advisor per analizzare e sottoporre a tuning le istruzioni SQL.

Il tuning SQL è un aspetto importante del tuning delle prestazioni del sistema di database. SQL tuning advisor è un meccanismo per la risoluzione dei problemi relativi all'esecuzione ottimale delle istruzioni SQL. Per l'input sono necessarie una o più istruzioni SQL o un SQL Tuning Set (STS) e viene richiamato l'ottimizzatore di tuning automatico per analizzare le istruzioni. Il risultato è sotto forma di risultati e raccomandazioni, insieme a una motivazione per ogni raccomandazione e ai suoi benefici attesi. I suggerimenti di tuning includono quanto segue ed è possibile scegliere di accettare i suggerimenti per completare il tuning delle istruzioni SQL.

  • Raccolta di statistiche oggetto
  • Creazione di indici
  • Riscrittura delle istruzioni SQL
  • Creazione di profili SQL
  • Creazione di baseline del piano SQL

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

In Diagnostica e gestione di Gestione database è possibile utilizzare SQL Tuning Advisor per analizzare le istruzioni SQL in un database gestito.

Nota

SQL tuning advisor è disponibile solo per Oracle Database Enterprise Edition versione 12.2 e successive e se il parametro di inizializzazione COMPATIBLE è impostato per il database, deve corrispondere alla versione 12.2.0 e successive. Per informazioni sulla compatibilità del database, vedere What Is Oracle Database Compatibility? nella Oracle Database Upgrade Guide.

Di seguito sono riportati i passi principali coinvolti nell'utilizzo di SQL Tuning Advisor in Diagnostica e gestione.

  1. Selezionare l'input ed eseguire SQL Tuning Advisor: l'input (istruzioni SQL o un STS) per SQL Tuning Advisor può essere selezionato utilizzando una delle opzioni riportate di seguito e sottomesso come task di SQL Tuning.
    • Andare a Hub delle prestazioni, selezionare uno o più ID SQL nella scheda analitica ASH, quindi fare clic su Esegui tuning SQL.

    • Fare clic su Sottoponi a tuning SQL nella sezione Task di SQL tuning advisor e selezionare le istruzioni SQL o un STS. Tenere presente che per poter selezionare singole istruzioni SQL come input, è necessario selezionare prima le istruzioni SQL nella scheda Analitica ASH in Hub delle prestazioni.

    • Abilitare il tuning SQL automatico nel database. Tenere presente che Diagnostics & Management non supporta la configurazione automatica di SQL tuning advisor, tuttavia, se SQL tuning advisor è configurato per l'esecuzione automatica nel database, il task di SQL tuning automatico e i risultati e i suggerimenti vengono visualizzati anche in Diagnostica e gestione. Per informazioni su come configurare SQL tuning advisor come task automatico, vedere Gestione del task di tuning SQL automatico in Oracle Database SQL Tuning Guide.

  2. Visualizzare i risultati: i risultati di SQL tuning advisor vengono visualizzati nella sezione Task di SQL tuning advisor della pagina Dettagli del database gestito.
  3. Implementare i suggerimenti: i risultati e i suggerimenti di SQL tuning advisor sono disponibili nella pagina Dettagli task di SQL tuning advisor ed è possibile rivedere queste informazioni e scegliere di implementare i suggerimenti.

Ruolo e privilegi necessari per utilizzare SQL Tuning Advisor

Per eseguire i task nel workflow di SQL tuning advisor sono necessari i privilegi amministrativi di Oracle Database. È inoltre necessario assegnare il ruolo e i privilegi riportati di seguito.

GRANT SELECT_CATALOG_ROLE <following privileges> TO <admin user>
  • ADVISOR
  • CREATE JOB
  • CREATE SESSION
  • SELECT ANY DICTIONARY
  • INHERIT ANY PRIVILEGES
  • ADMINISTER SQL TUNING SET TO <SQLTUNEUSER>

Per ulteriori informazioni sui ruoli e sui privilegi di Oracle Database, vedere Configuring Privilege and Role Authorization in Oracle Database Security Guide.

Esegui SQL tuning advisor

Come primo passo, è necessario eseguire SQL tuning advisor sulle istruzioni SQL selezionate o su STS.

Per accedere al pannello Esegui SQL tuning advisor della pagina Dettagli database gestito del database gestito, è possibile utilizzare una delle opzioni riportate di seguito.

  • Fare clic su Hub delle prestazioni e, nella scheda Analitica ASH, scorrere fino agli ID SQL elencati nella sezione ID SQL per classe di attesa (vista predefinita), selezionare una o più istruzioni SQL e fare clic su Esegui tuning SQL.

    Nota

    Hub delle prestazioni per database gestiti supporta solo Oracle Database Enterprise Edition e la disponibilità delle funzioni Hub delle prestazioni dipende dal tipo e dalla versione di Oracle Database e richiede determinati privilegi aggiuntivi. Per informazioni su tutte le condizioni che influiscono sull'uso dell'hub delle prestazioni per i database gestiti, vedere OCI: Prerequisite Conditions for Performance Hub (KB59684) in My Oracle Support.
  • Fare clic su SQL Tuning Advisor nel riquadro sinistro in Risorse e fare clic su Sintonizza SQL nella sezione Task di SQL tuning advisor.

Nel pannello Esegui SQL tuning advisor:

  1. Immettere i seguenti dettagli nella sezione Definizione task:
    1. Nome: immettere un nome per il task di SQL Tuning.
    2. Descrizione: è possibile immettere una descrizione per il task.
  2. Selezionare una delle seguenti opzioni nella sezione SQL:
    • Istruzioni SQL selezionate: utilizzare questa opzione per selezionare e analizzare le istruzioni SQL selezionate in Hub delle prestazioni. Si noti che questa opzione è abilitata solo se le istruzioni SQL vengono selezionate per la prima volta nella scheda Analitica ASH in Hub delle prestazioni.
    • SQL Tuning Set: utilizzare questa opzione per selezionare un STS come input per SQL Tuning Advisor. Tenere presente che gli STS sono elencati in questa sezione solo se vengono creati per la prima volta nel database. Per informazioni su STS, vedere Acquisizione dei carichi di lavoro in SQL Tuning Set in Oracle Database SQL Tuning Guide.
  3. Fornire l'ambito del task nella sezione Parametri task.
    1. Limite di tempo totale (minuti): specificare il tempo totale che SQL Tuning Advisor deve dedicare all'analisi dell'istruzione.
    2. Ambito dell'analisi: selezionare l'opzione appropriata per definire l'ambito dell'analisi.
      • Limitato: SQL Tuning Advisor produce suggerimenti basati su controlli statistici, analisi del percorso di accesso e analisi della struttura SQL. I suggerimenti del profilo SQL non sono stati generati.
      • Completo: SQL Tuning Advisor esegue tutte le analisi eseguite nell'ambito Limitato più il profiling SQL.
  4. Selezionare una delle opzioni disponibili nell'elenco a discesa Tipo di credenziale nella sezione Credenziali 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.
  5. Fare clic su Esegui.
Il task SQL Tuning è stato sottomesso a SQL Tuning Advisor.

Visualizza risultati di SQL Tuning Advisor

Durante l'esecuzione di SQL tuning advisor, è possibile visualizzarne i risultati e i suggerimenti in Diagnostica e gestione.

Dopo aver eseguito SQL Tuning Advisor sulle istruzioni SQL selezionate o su un STS, il task di SQL Tuning viene visualizzato nella sezione Task di SQL Tuning Advisor. Tenere presente che se SQL tuning advisor è configurato per l'esecuzione automatica nel database, vengono visualizzati anche i task di SQL tuning automatico. Per ogni task di tuning SQL, è possibile fare clic sull'icona Azioni (Azioni) e fare clic sull'opzione Riesegui task di tuning SQL per rieseguire il task di tuning SQL, se necessario.

Fare clic sul nome del task SQL tuning per andare alla pagina Dettagli task di SQL tuning advisor. I risultati e i suggerimenti di SQL tuning advisor vengono visualizzati nelle schede riportate di seguito nella pagina Dettagli task di SQL tuning advisor.

  • Scheda Riepilogo: consente di visualizzare un riepilogo grafico del task e dei risultati forniti da SQL Tuning Advisor.
    • Istruzioni SQL distinte esaminate: le istruzioni SQL esaminate da SQL Tuning Advisor sono raggruppate nelle categorie SQL esaminato con risultati, SQL saltato a causa di errori e SQL esaminato senza risultati e visualizzate in un grafico di ciambella. Si noti che se l'istruzione SQL è stata eseguita più volte, viene presa in considerazione una sola esecuzione (distinta) durante il periodo di tempo dell'analisi.
    • Vantaggio per i suggerimenti profilo SQL: il vantaggio dei suggerimenti profilo SQL in tempo DB (in secondi) viene visualizzato nei grafici a barre. I grafici a barre dispongono di barre prima e dopo, che indicano rispettivamente il tempo DB effettivo e il tempo DB migliorato. Se i suggerimenti del profilo SQL vengono forniti ma non implementati, viene visualizzato un singolo grafico benefit Potenziale, se i suggerimenti del profilo SQL vengono implementati parzialmente, vengono visualizzati i grafici benefit Potenziale e Implementato e se i suggerimenti del profilo SQL vengono implementati completamente, viene visualizzato solo il grafico benefit Implementato.
    • Ricerche con suggerimenti per tipo: i risultati di SQL tuning advisor con suggerimenti vengono classificati in base al tipo e visualizzati in un grafico a barre.
  • Scheda Risultati SQL: consente di visualizzare i risultati e implementare i suggerimenti di SQL Tuning Advisor. È possibile visualizzare la lista delle istruzioni SQL e le informazioni corrispondenti in base all'analisi eseguita da SQL Tuning Advisor. Ciò include i vantaggi stimati in termini di prestazioni e i risultati con raccomandazioni. È possibile selezionare una singola istruzione SQL per visualizzare i suggerimenti specifici per ogni risultato, le motivazioni e il vantaggio previsto se viene implementato un suggerimento. In questa scheda è possibile utilizzare le opzioni disponibili per implementare tutti i suggerimenti del profilo SQL, implementare un singolo suggerimento e confrontare gli explain plan.
  • Scheda SQL senza risultati: consente di visualizzare le istruzioni SQL saltate perché non si tratta di risultati o suggerimenti, errori o se si è verificato il timeout del task.

Implementa suggerimenti di SQL tuning advisor

È possibile creare job per implementare i suggerimenti di SQL tuning advisor.

A tale scopo, andare alla pagina Dettagli task di SQL tuning advisor e visualizzare i risultati e i suggerimenti dell'analisi di SQL tuning advisor nella scheda Risultati SQL. In questa scheda è possibile creare un job per implementare tutti i suggerimenti del profilo SQL o implementare un singolo profilo SQL, indice o suggerimento correlato alle statistiche e confrontare gli explain plan. È inoltre possibile visualizzare i risultati di ristrutturazione SQL, piano alternativo e vari. Tuttavia, l'opzione per implementare la ristrutturazione SQL e i suggerimenti del piano alternativo non è disponibile. Per informazioni sulla ristrutturazione di piani SQL e alternativi, vedere SQL Structural Analysis e Alternative Plan Analysis in Oracle Database SQL Tuning Guide.


Scheda Risultati SQL

Implementa tutti i suggerimenti sul profilo SQL

  1. Andare alla pagina Dettagli task di SQL Tuning Advisor e fare clic sulla scheda Risultati SQL.
  2. Fare clic su Implementa tutti i suggerimenti sul profilo SQL.
  3. Nel pannello Implementa tutti i suggerimenti:
    1. Fornire le informazioni riportate di seguito per creare un job per implementare i suggerimenti.
      1. Nome: immettere un nome univoco per il job.
      2. Descrizione: è possibile immettere una descrizione per il job.
    2. Specificare i parametri del task:
      1. Implementare il nuovo profilo con la corrispondenza forzata: selezionare questa opzione per definire come target tutte le istruzioni SQL con lo stesso testo dopo aver normalizzato tutti i valori letterali nelle bind variable. Tenere presente che se nell'istruzione SQL viene utilizzata una combinazione di valori letterali e valori di associazione, non si verifica alcuna trasformazione di associazione.
      2. Imposta categoria profilo SQL: selezionare questa opzione per specificare la categoria in cui creare il profilo SQL e immettere il nome della categoria nel campo Crea profilo nella categoria.
    3. 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.
      2. Bucket per l'output del job: 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.
    4. È inoltre possibile fare clic su Mostra SQL per visualizzare l'istruzione SQL che verrà eseguita.
    5. Fare clic su Implementa suggerimenti.
Tutti i suggerimenti del profilo SQL verranno ora implementati ed è possibile monitorare questo job nella sezione Job del database gestito.

Per implementare un singolo suggerimento di profilo SQL, selezionare una singola istruzione SQL, scorrere fino alla sezione Implementa un suggerimento per l'ID SQL: <ID SQL>, quindi fare clic sull'icona Azioni (Azioni) nella riga profilo SQL e fare clic su Implementa suggerimento.

Per informazioni sui profili SQL, vedere Informazioni sui profili SQL in Oracle Database SQL Tuning Guide.

Implementa suggerimento indice

  1. Nella scheda Risultati SQL selezionare una singola istruzione SQL, scorrere fino alla sezione Implementare un suggerimento per l'ID SQL: <SQL ID>, quindi fare clic sull'icona Azioni (Azioni) nella riga Indice e fare clic su Implementa suggerimento.
  2. Nel pannello Implementa suggerimento:
    1. Fornire le informazioni riportate di seguito per creare un job per implementare i suggerimenti.
      1. Nome: immettere un nome univoco per il job.
      2. Descrizione: è possibile immettere una descrizione per il job.
    2. Nella sezione Parametri task selezionare la tablespace che verrà utilizzata per implementare il suggerimento di indice.
    3. 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.
      2. Bucket per l'output del job: 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.
    4. È inoltre possibile fare clic su Mostra SQL per visualizzare l'istruzione SQL che verrà eseguita.
    5. Fare clic su Implementa suggerimento.
Il suggerimento per l'indice verrà ora implementato ed è possibile monitorare questo job nella sezione Job del database gestito.

Implementa suggerimento statistiche

  1. Nella scheda Risultati SQL selezionare una singola istruzione SQL, scorrere fino alla sezione Implementare un suggerimento per l'ID SQL: <SQL ID>, quindi fare clic sull'icona Azioni (Azioni) nella riga Statistiche e fare clic su Implementa suggerimento.
  2. Nel pannello Implementa suggerimento:
    1. Fornire le informazioni riportate di seguito per creare un job per implementare i suggerimenti.
      1. Nome: immettere un nome univoco per il job.
      2. Descrizione: è possibile immettere una descrizione per il job.
    2. Nella sezione Parametri task, esaminare le statistiche da considerare per l'implementazione.
    3. 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.
      2. Bucket per l'output del job: 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.
    4. È inoltre possibile fare clic su Mostra SQL per visualizzare l'istruzione SQL che verrà eseguita.
    5. Fare clic su Implementa suggerimento.
Il suggerimento relativo alle statistiche verrà ora implementato ed è possibile monitorare questo job nella sezione Job del database gestito.

Confronta explain plan

L'explain plan è un'istruzione che visualizza i piani di esecuzione scelti da Oracle Optimizer per le istruzioni SELECT, UPDATE, INSERT e DELETE. Il piano di esecuzione di un'istruzione è la sequenza di operazioni che Oracle esegue per eseguire l'istruzione.

Per visualizzare e confrontare gli explain plan, procedere come segue.

  1. Nella scheda Risultati SQL selezionare una singola istruzione SQL, scorrere fino alla sezione Implementa un suggerimento per l'ID SQL: <SQL ID>, quindi fare clic sull'icona Azioni (Azioni) nella riga Indice o Profilo SQL e fare clic sulla riga Confronta explain plan.
  2. Nella pagina Confronta explain plan:
    • Confrontare l'ora DB e i conteggi I/O negli explain plan originali e nuovi nella scheda Risultati test profilo. Questo confronto viene fornito in una vista grafica e confronta metriche quali ora CPU, Richieste buffer e Letture disco. Si noti che la scheda Risultati test profilo non viene visualizzata se il report di confronto non viene generato.
    • Confrontare i passi nel piano di esecuzione originale e il nuovo piano di esecuzione dell'istruzione SQL nella scheda Spiegare i piani. Questo confronto viene fornito in una vista tabulare, ma è possibile selezionare explain plan grafico nell'elenco a discesa opzione Visualizza per visualizzare una rappresentazione grafica dell'explain plan. Nella vista explain plan grafico, fare clic su Ruota oppure utilizzare il mouse e il touch pad per scorrere l'explain plan e visualizzare la sequenza di operazioni.
  3. Fare clic su Chiudi per tornare alla pagina Dettagli task di SQL tuning advisor.