Eseguire la migrazione dei piani di esecuzione SQL esistenti in Autonomous Database per ridurre il rischio delle aree di prestazioni SQL

Descrive come ridurre il rischio di regressioni delle prestazioni SQL quando si esegue la migrazione ad Autonomous Database.

Informazioni sulla migrazione ad Autonomous Database con SPM (Real-time SQL Plan Management)

Descrive l'uso della gestione dei piani SQL in tempo reale quando si esegue la migrazione da un Oracle Database di origine ad Autonomous Database.

Quando si esegue la migrazione da un Oracle Database di origine ad Autonomous Database, è possibile utilizzare SPM (Real-time SQL Plan Management). Ciò consente di acquisire i piani di esecuzione SQL dal database di origine e di spostarli in ASM (Automatic SQL Tuning Set) su Autonomous Database in modo che i piani continuino a funzionare con le stesse o migliori prestazioni dopo la migrazione. SPM in tempo reale consente di modificare i piani in Autonomous Database, ma se SPM in tempo reale rileva prestazioni scadenti, potrebbe utilizzare un piano proveniente dal database pre-migrato se tale piano fornisce prestazioni migliori (SPM in tempo reale utilizza i piani in Automatic SQL Tuning Set (ASTS) solo se fornisce prestazioni migliori).

Tieni a mente quanto segue per utilizzare SPM in tempo reale con una migrazione ad Autonomous Database:

  • SPM si basa su istruzioni SQL ripetibili. SPM non è adatto per i database che utilizzano valori letterali nelle istruzioni SQL o per SQL ad alta dinamica, ad esempio in ambienti di query ad hoc. Tuttavia, se le istruzioni SQL utilizzano valori letterali e il parametro CURSOR_SHARING è impostato su FORCE, SPM funzionerà.
  • Nell'Oracle Database di origine di cui si sta eseguendo la migrazione ad Autonomous Database vengono acquisite le istruzioni SQL dell'applicazione in un SQL Tuning Set (SYS_AUTO_SYS). Questo può consumare spazio in SYSAUX, ma in genere non consuma più di pochi gigabyte (anche per sistemi di grandi dimensioni). Se necessario, è possibile monitorare l'uso di SYSAUX e aumentare la dimensione della tablespace.
  • L'SPM in tempo reale non può impedire tutte le regressioni delle prestazioni, ma può ridurre significativamente il rischio che si verifichino regressioni delle prestazioni a causa delle modifiche al piano di esecuzione SQL.

Eseguire i passi riportati di seguito per abilitare SQL Plan Management (SPM) nell'Oracle Database di origine e per eseguire la migrazione del database ad Autonomous Database.

  1. Abilita SQL Tuning Set automatico in Oracle Database di origine

  2. Migra i tuoi dati ad Autonomous Database

  3. Esporta SQL Tuning Set automatico da Oracle Database di origine

  4. Importa SQL Tuning Set automatico in Autonomous Database

  5. Verifica l'impostazione SPM in tempo reale su Autonomous Database

Per ulteriori informazioni, vedere gli argomenti riportati di seguito.

Abilita SQL Tuning Set automatico in Oracle Database di origine

Prima di eseguire la migrazione ad Autonomous Database, abilitare l'SQL Tuning Set (ASTS) automatico nell'Oracle Database di origine.

ASTS deve essere eseguito per un tempo sufficiente a coprire il carico di lavoro e acquisire tutte o la maggior parte delle istruzioni SQL e i relativi piani di esecuzione. Quindi, prendi in considerazione l'opportunità di abilitare ASTS con lead time in anticipo rispetto alla migrazione ad Autonomous Database. Ad esempio, per un'applicazione finanziaria o di vendita, acquisire l'elaborazione di fine mese o di fine anno.

Nell'Oracle Database di origine, poiché l'utente DBA abilita Automatic SQL Tuning Set (ASTS):

  1. Nel database di cui si desidera eseguire la migrazione, abilitare ASTS.
    BEGIN
      dbms_auto_task_admin.enable(
        client_name => 'Auto STS Capture Task',
        operation   => NULL,
        window_name => NULL);
    END;
    /

    Per ulteriori informazioni, vedere DBMS_AUTO_TASK_ADMIN.

  2. Verificare che il task in background ASTS sia abilitato.
    SELECT task_name, interval,status, last_schedule_time, enabled
        FROM   dba_autotask_schedule_control
        WHERE  dbid = sys_context('userenv','con_dbid') AND 
               task_name = 'Auto STS Capture Task';

Se si desidera monitorare l'istruzione SQL acquisita, visualizzare DBA_SQLSET_STATEMENTS. Ad esempio:

SELECT substr(sql_text,1,100) txt, executions
    FROM dba_sqlset_statements 
    WHERE sqlset_name = 'SYS_AUTO_STS';

Se necessario, è possibile monitorare le dimensioni e lo spazio libero di SYSAUX. Ad esempio:

SELECT sum(bytes)/(1024*1024*1024) size_gb
    FROM   dba_data_files
    WHERE tablespace_name = 'SYSAUX' GROUP BY tablespace_name;

SELECT sum(bytes)/(1024*1024*1024) free_gb
    FROM dba_free_space
    WHERE tablespace_name = 'SYSAUX' GROUP BY tablespace_name;

Migra i tuoi dati ad Autonomous Database

Dopo aver acquisito una quantità sufficiente di istruzioni SQL nell'Oracle Database di origine con ASTS (Automatic SQL Tuning Set) abilitato, eseguire la migrazione ad Autonomous Database.

Per informazioni sulle opzioni per la migrazione ad Autonomous Database, vedere Esegui migrazione dei database Oracle ad Autonomous Database.

Esporta SQL Tuning Set automatico da Oracle Database di origine

Dopo aver eseguito la migrazione ad Autonomous Database, esportare l'SQL Tuning Set (ASTS) automatico dall'Oracle Database di origine.

  1. Nell'Oracle Database di origine creare e popolare una tabella intermedia per i dati ASTS.

    Come utente DBA, creare la tabella intermedia:

    BEGIN
       dbms_sqlset.create_stgtab('ASTS_TABLE');
       dbms_sqlset.pack_stgtab('SYS_AUTO_STS','SYS','ASTS_TABLE');
    END;
    /

    Una volta completata questa operazione, la tabella intermedia contiene le istruzioni SQL acquisite nell'Oracle Database di origine.

  2. Esportare la tabella intermedia.

    Ad esempio, esportare la tabella intermedia utilizzando Oracle Data Pump:

    CREATE DIRECTORY dpdir AS '/export_directory';
    expdp user/password@database tables=asts_table directory=directory dumpfile=filename

Per ulteriori informazioni, vedere DBMS_SQLSET.

Importa SQL Tuning Set automatico in Autonomous Database

Dopo aver eseguito la migrazione ad Autonomous Database ed aver esportato l'SQL Tuning Set (ASTS) automatico dall'Oracle Database di origine di cui si sta eseguendo la migrazione, importare ASTS in Autonomous Database.

  1. Importare il file di staging nell'Autonomous Database.

    Utilizzare Oracle Data Pump per importare la tabella intermedia in Autonomous Database. Caricare innanzitutto il file di dump esportato dall'Oracle Database di origine in un bucket di storage degli oggetti cloud, quindi importare il file di dump.

    Ad esempio, quando l'utente ADMIN esegue i comandi riportati di seguito.

    1. Creare la credenziale per accedere al bucket dell'area di memorizzazione degli oggetti cloud.
      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'BUCKET_CREDENTIAL',
          username => 'oracleidentitycloudservice/aaaaa@bbbbb.com',
          password => 'password'
        );
      END;
      /

      Per ulteriori informazioni, vedere Crea credenziali per accedere ai servizi cloud.

    2. Utilizzare Oracle Data Pump per importare il file di dump con i dati ASTS nell'istanza di Autonomous Database.
      impdp admin/password@db_adb_high \
           directory=data_pump_dir \
           credential=BUCKET_CREDENTIAL \
           dumpfile= https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/asts_staging.dmp \
           tables=asts_table

      Per ulteriori informazioni, consulta la sezione relativa all'importazione dei dati mediante Oracle Data Pump su Autonomous Database.

    Nota

    Assicurarsi che il file del fuso orario in Autonomous Database corrisponda al valore nell'Oracle Database di origine in cui è stato creato il file di dump. In caso di mancata corrispondenza del fuso orario, il database genera il seguente errore:
    ORA-39002: invalid operation' error raised by dbms_datapump.start_job'

    Per ulteriori informazioni, vedere Supporto di tipi di dati e fusi orari e Gestisci aggiornamenti file fuso orario su Autonomous Database.

  2. Nell'Autonomous Database di cui è stata eseguita la migrazione, decomprimere le istruzioni SQL dalla tabella intermedia e caricarle nell'ASTS di destinazione.
    BEGIN
       dbms_sqlset.unpack_stgtab('SYS_AUTO_STS','SYS',TRUE,'ASTS_TABLE');
    END;
    /

Per ulteriori informazioni, vedere DBMS_SQLSET.

Verifica l'impostazione SPM in tempo reale su Autonomous Database

Descrive i passi per verificare che SPM in tempo reale sia abilitato in Autonomous Database.

L'SPM in tempo reale è abilitato per impostazione predefinita in Autonomous Database. È possibile verificare la modalità SPM in tempo reale come indicato di seguito.

SELECT parameter_value spm_mode  
    FROM   dba_sql_management_config
    WHERE  parameter_name = 'AUTO_SPM_EVOLVE_TASK'; 

La modalità AUTO (automatica) SPM in tempo reale indica che SPM in tempo reale è abilitato.

Se SPM in tempo reale non è abilitato, utilizzare il seguente comando per abilitarlo:

EXEC dbms_spm.configure('AUTO_SPM_EVOLVE_TASK', 'AUTO')