Oracle SQLT - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Oracle SQLT

Amazon RDS supporta Oracle SQLTXPLAIN (SQLT) attraverso l'utilizzo dell'opzione SQLT. È possibile utilizzare SQLT con qualsiasi edizione di Oracle Database 19c e versioni successive.

L'istruzione EXPLAIN PLAN di Oracle può stabilire il piano di esecuzione di un'istruzione SQL. Può verificare se l'ottimizzatore di Oracle sceglie un determinato piano di esecuzione, come un loop nidificato. Consente inoltre di comprendere le decisioni dell'ottimizzatore, ad esempio il motivo della scelta di loop nidificati rispetto a un hash join. Pertanto, EXPLAIN PLAN aiuta a comprendere le prestazioni dell'istruzione.

SQLT è un'utilità di Oracle che produce un rapporto. Tale rapporto include statistiche e metadati degli oggetti, parametri di inizializzazione correlati all'ottimizzatore e altre informazioni che possono essere utilizzate da un amministratore del database per modificare un'istruzione SQL e migliorarne le prestazioni. SQLT produce un rapporto HTML con collegamenti ipertestuali a tutte le relative sezioni.

A differenza dei rapporti di Automatic Workload Repository o Statspack, SQLT agisce sulle singole istruzioni SQL. SQLT è una raccolta di file SQL, PL/SQL e SQL*Plus che consente di raccogliere, archiviare e visualizzare i dati delle prestazioni.

Di seguito sono indicate le versioni Oracle supportate per ogni versione di SQLT.

Versione SQLT Oracle Database 21c Oracle Database 19c

2018-07-25.v1

Supportato

Supportato

2018-03-31.v1

Non supportato

Non supportato

2016-04-29.v1

Non supportato

Non supportato

Per il download e le istruzioni per l'accesso di SQLT:

Amazon RDS non supporta i seguenti metodi SQLT:

  • XPLORE

  • XHUME

Prerequisiti di SQLT

Di seguito sono indicati i prerequisiti per l'utilizzo di SQLT:

  • Devi rimuovere gli utenti e ruoli richiesti da SQLT, se esistenti.

    L'opzione SQLT crea i seguenti utenti e ruoli in un'istanza database:

    • SQLTXPLAINUtente

    • SQLTXADMINUtente

    • SQLT_USER_ROLERuolo

    Se nell'istanza database sono presenti uno o più di tali utenti o ruoli, accedi all'istanza database con un client SQL ed eliminali con le seguenti istruzioni:

    DROP USER SQLTXPLAIN CASCADE; DROP USER SQLTXADMIN CASCADE; DROP ROLE SQLT_USER_ROLE CASCADE;
  • Devi rimuovere gli spazi tabelle richiesti da SQLT, se esistenti.

    L'opzione SQLT crea i seguenti spazi tabelle in un'istanza database:

    • RDS_SQLT_TS

    • RDS_TEMP_SQLT_TS

    Se nell'istanza database sono presenti tali spazi tabelle, accedi all'istanza database con un client SQL ed eliminali con le seguenti istruzioni:

Impostazioni dell'opzione SQLT

SQLT può essere utilizzata con caratteristiche con licenza fornite da Oracle Tuning Pack e da Oracle Diagnostics Pack. Oracle Tuning Pack include SQL Tuning Advisor, mentre Oracle Diagnostics Pack include Automatic Workload Repository. Le impostazioni SQLT consentono di abilitare o disabilitare l'accesso a tali caratteristiche da SQLT.

Amazon RDS supporta le seguenti impostazioni per l'opzione SQLT.

Impostazione opzioni Valori validi Valore predefinito Descrizione

LICENSE_PACK

T, D, N

N

Gli Oracle Management Pack a cui desideri accedere con SQLT. Immetti uno dei seguenti valori:

  • T indica che possiedi una licenza per Oracle Tuning Pack e Oracle Diagnostics Pack e che desideri accedere a SQL Tuning Advisor e ad Automatic Workload Repository da SQLT.

  • D indica che possiedi una licenza per Oracle Tuning Pack e che desideri accedere ad Automatic Workload Repository da SQLT.

  • N indica che non possiedi una licenza per Oracle Tuning Pack e Oracle Diagnostics Pack o che possiedi una licenza per uno dei due, ma non desideri accedervi con SQLT.

Nota

Amazon RDS non fornisce licenze per i seguenti Oracle Management Pack. Se specifichi che desideri utilizzare un pacchetto non incluso nell'istanza database, puoi utilizzare SQLT con tale istanza database. Tuttavia, SQLT non sarà in grado di accedere al pacchetto e il rapporto SQLT non includerà i relativi dati. Ad esempio, se specifichi T, ma l'istanza database non include Oracle Tuning Pack, SQLT opererà sull'istanza database, ma il rapporto generato non includerà i dati relativi a Oracle Tuning Pack.

VERSION

2016-04-29.v1

2018-03-31.v1

2018-07-25.v1

2016-04-29.v1

Versione di SQLT da installare.

Nota

Per Oracle Database 19c e 21c, l'unica versione supportata è 2018-07-25.v1. Questa è la versione predefinita per queste versioni.

Aggiunta dell'opzione SQLT

Di seguito è riportato il processo generale per aggiungere l'opzione SQLT a un'istanza database:

  1. Creare un nuovo gruppo di opzioni oppure copiare o modificare un gruppo di opzioni esistente.

  2. Aggiungere l'opzione SQLT al gruppo di opzioni.

  3. Associare il gruppo di opzioni a questa istanza database.

Una volta aggiunta l'opzione SQLT, non appena il gruppo di opzioni sarà attivo, anche SQLT sarà attivo.

Per aggiungere l'opzione SQLT a un'istanza database
  1. Determinare il gruppo di opzioni che si vuole usare. È possibile creare un nuovo gruppo di opzioni oppure usare un gruppo di opzioni esistente. Se si desidera usare un gruppo di opzioni esistente, puoi passare alla fase successiva. In caso contrario, creare un gruppo di opzioni database personalizzato con le seguenti impostazioni:

    1. Per Engine (Motore), scegliere l'edizione di Oracle da utilizzare. L'opzione SQLT è supportata in tutte le edizioni.

    2. In Major engine version (Versione principale del motore), scegliere la versione dell'istanza database.

    Per ulteriori informazioni, consulta Creazione di un gruppo di opzioni.

  2. Aggiungere l'opzione SQLT al gruppo di opzioni. Per ulteriori informazioni sull'aggiunta di opzioni, consulta Aggiunta di un'opzione a un gruppo di opzioni.

  3. Applicare il gruppo di opzioni a un'istanza database nuova o esistente:

  4. (Opzionale) Verificare l'installazione SQLT in ciascuna istanza database dell'opzione SQLT.

    1. Utilizzare un client SQL per effettuare la connessione all'istanza database come utente master.

      Per informazioni sulla connessione a un'istanza database Oracle con un client SQL, consulta Connessione all'istanza database RDS per Oracle.

    2. Eseguire la seguente query:

      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;

      La query restituisce la versione corrente dell'opzione SQLT in Amazon RDS. 12.1.160429 è un esempio di versione di SQLT disponibile in Amazon RDS.

  5. Modificare le password degli utenti creati dall'opzione SQLT.

    1. Utilizzare un client SQL per effettuare la connessione all'istanza database come utente master.

    2. Eseguire la seguente istruzione SQL per modificare la password dell'utente SQLTXADMIN:

      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      Nota

      Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

    3. Eseguire la seguente istruzione SQL per modificare la password dell'utente SQLTXPLAIN:

      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      Nota

      Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

Nota

Per aggiornare SQLT, dovrai disinstallare la versione precedente di SQLT e installare quella nuova. Pertanto, durante l'aggiornamento di SQLT, tutti i metadati SQLT potrebbero andare perduti. Anche l'aggiornamento di una versione principale di un database la disinstallazione e la reinstallazione di SQLT. Un esempio di aggiornamento di una versione principale è l'aggiornamento da Oracle Database 19c a Oracle Database 21c.

Uso di SQLT

SQLT funziona con l'utilità Oracle SQL*Plus.

Per utilizzare SQLT
  1. Scaricare il file .zip di SQLT da Document 215187.1 nel sito My Oracle Support.

    Nota

    Non è possibile scaricare SQLT 12.1.160429 dal sito My Oracle Support. Oracle ha dichiarato obsoleta questa versione precedente.

  2. Decomprimere il file .zip di SQLT.

  3. Dal prompt dei comandi, portarsi sulla directory sqlt/run del file system.

  4. Dal prompt dei comandi, aprire SQL*Plus ed effettuare la connessione all'istanza database come utente master.

    Per informazioni sulla connessione a un'istanza database Oracle con SQL*Plus, consulta Connessione all'istanza database RDS per Oracle.

  5. Ottenere l'ID SQL di un'istruzione SQL:

    SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';

    L'output è simile a quello riportato di seguito:

    SQL_ID ------------- chvsmttqjzjkn
  6. Analizzare un'istruzione SQL con SQLT:

    START sqltxtract.sql sql_id sqltxplain_user_password

    Ad esempio, per l'ID SQL chvsmttqjzjkn, immettere quanto segue:

    START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password

    SQLT genera un rapporto e le risorse correlate come un file. zip nella directory in cui è stato eseguito il comando SQLT.

  7. (Opzionale) Per consentire agli utenti dell'applicazione di diagnosticare le istruzioni SQL con SQLT, concedere SQLT_USER_ROLE a ciascun utente con la seguente istruzione:

    GRANT SQLT_USER_ROLE TO application_user_name;
    Nota

    Oracle sconsiglia l'esecuzione di SQLT con l'utente SYS o con utenti che dispongono del ruolo DBA. La best practice prevede l'esecuzione della diagnostica SQLT con l'account dell'utente dell'applicazione, concedendo SQLT_USER_ROLE a tale utente.

Aggiornamento dell'opzione SQLT

Con Amazon RDS for Oracle puoi aggiornare l'opzione SQLT dalla versione attuale a una versione successiva. Per aggiornare l'opzione SQLT, completa le fasi 1–3 in Uso di SQLT per la nuova versione di SQLT. Inoltre, se hai concesso privilegi per la versione precedente di SQLT nella fase 7 di questa sezione, assegnali di nuovo per la nuova versione di SQLT.

L'aggiornamento dell'opzione SQLT causa la perdita dei metadati della versione precedente di SQLT. Lo schema e gli oggetti correlati della versione di SQLT precedente vengono eliminati e viene installata la versione più recente. Per ulteriori informazioni sulle modifiche nella versione più recente di SQLT, consulta il Documento 1614201.1 nel sito My Oracle Support.

Nota

I downgrade di versione non sono supportati.

Modifica delle impostazioni SQLT

Dopo avere abilitato SQLT, puoi modificare le impostazioni LICENSE_PACK e VERSION dell'opzione.

Per ulteriori informazioni su come modificare le impostazioni dell'opzione, consulta Modifica di un'impostazione di un'opzione. Per ulteriori informazioni su ciascuna impostazione, consulta Impostazioni dell'opzione SQLT.

Rimozione dell'opzione SQLT

Puoi rimuovere SQLT da un'istanza database.

Per rimuovere SQLT da un'istanza database, esegui una delle seguenti procedure:

  • Per rimuovere SQLT da più istanze database, rimuovi l'opzione SQLT dal gruppo di opzioni a cui appartengono le istanze database. Questa modifica coinvolge tutte le istanze database che usano il gruppo di opzioni. Per ulteriori informazioni, consulta Rimozione di un'opzione da un gruppo di opzioni.

  • Per rimuovere SQLT da una singola istanza database, modifica l'istanza database e specifica un gruppo di opzioni diverso che non comprenda l'opzione SQLT. È possibile specificare il gruppo di opzioni predefinito (vuoto) o un gruppo di opzioni personalizzato diverso. Per ulteriori informazioni, consulta Modifica di un'istanza database Amazon RDS.