Vorhandene SQL-Ausführungspläne zu Autonomous Database migrieren, um das Risiko von SQL-Performance-Regressionen zu mindern

Beschreibt, wie Sie das Risiko von SQL-Performance-Regressionen bei der Migration zu Autonomous Database reduzieren.

Informationen zur Migration zu Autonomous Database mit Echtzeit-SQL-Planmanagement (SPM)

Beschreibt die Verwendung von Echtzeit-SQL-Planmanagement bei der Migration von einer Oracle Database-Quelldatenbank zu Autonomous Database.

Wenn Sie von einer Oracle Database-Quelldatenbank zu Autonomous Database migrieren, können Sie Real-time SQL Plan Management (SPM) verwenden. Auf diese Weise können Sie die SQL-Ausführungspläne aus der Quelldatenbank erfassen und in Automatic SQL Tuning Set (ASTS) in Autonomous Database verschieben, sodass die Pläne nach der Migration weiterhin mit derselben oder besserer Performance ausgeführt werden. Mit Echtzeit-SPM können Pläne in Autonomous Database geändert werden. Wenn jedoch Echtzeit-SPM eine schlechte Performance aufweist, kann es einen Plan verwenden, der aus der vorab migrierten Datenbank stammt, wenn dieser Plan eine bessere Performance bietet (Echtzeit-SPM verwendet die Pläne in Automatic SQL Tuning Set (ASTS) nur, wenn sie eine bessere Performance bieten).

Beachten Sie Folgendes bei der Verwendung von Echtzeit-SPM bei einer Migration zu Autonomous Database:

  • SPM basiert auf wiederholbaren SQL-Anweisungen. SPM eignet sich nicht für Datenbanken, die Literalwerte in SQL-Anweisungen verwenden, oder für hochdynamisches SQL, z. B. in Ad-hoc-Abfrageumgebungen. Wenn die SQL-Anweisungen jedoch Literalwerte verwenden und der Parameter CURSOR_SHARING auf FORCE gesetzt ist, funktioniert SPM.
  • In der Quell-Oracle Database, die Sie zu Autonomous Database migrieren, erfassen Sie SQL-Anweisungen für Anwendungen in einem SQL Tuning Set (SYS_AUTO_SYS). Dies kann Speicherplatz in SYSAUX belegen, verbraucht jedoch in der Regel nicht mehr als ein paar Gigabyte (auch bei großen Systemen). Sie können die SYSAUX-Nutzung überwachen und gegebenenfalls die Größe des Tablespace erhöhen.
  • Echtzeit-SPM kann nicht alle Performance-Regressionen verhindern, kann jedoch das Risiko von Performance-Regressionen aufgrund von Änderungen am SQL-Ausführungsplan erheblich reduzieren.

Führen Sie die folgenden Schritte aus, um SQL Plan Management (SPM) in Ihrer Quell-Oracle Database zu aktivieren und die Datenbank zu Autonomous Database zu migrieren:

  1. Automatisches SQL Tuning Set in der Quell-Oracle Database aktivieren

  2. Daten in Autonomous Database migrieren

  3. Automatisches SQL Tuning Set aus Oracle Database-Quelldatenbank exportieren

  4. Automatisches SQL-Tuning-Set in Autonomous Database importieren

  5. SPM-Einstellung in Echtzeit in Autonomous Database prüfen

In den folgenden Themen finden Sie weitere Informationen:

Automatisches SQL Tuning Set in der Quell-Oracle Database aktivieren

Bevor Sie zu Autonomous Database migrieren, aktivieren Sie Automatic SQL Tuning Set (ASTS) in der Oracle Database-Quelldatenbank.

ASTS muss für ausreichend Zeit ausgeführt werden, um Ihre Workload abzudecken und alle oder die meisten SQL-Anweisungen und deren Ausführungspläne zu erfassen. Aktivieren Sie daher ASTS mit Vorlaufzeit vor der Migration zu Autonomous Database. Beispiel: Erfassen Sie für eine Finanz- oder Vertriebsanwendung die Verarbeitung zum Monats- oder Jahresende.

Aktivieren Sie in der Quell-Oracle Database als DBA-Benutzer Automatic SQL Tuning Set (ASTS):

  1. Aktivieren Sie ASTS in der Datenbank, die Sie migrieren möchten.
    BEGIN
      dbms_auto_task_admin.enable(
        client_name => 'Auto STS Capture Task',
        operation   => NULL,
        window_name => NULL);
    END;
    /

    Weitere Informationen finden Sie unter DBMS_AUTO_TASK_ADMIN.

  2. Prüfen Sie, ob die ASTS-Hintergrundaufgabe aktiviert ist.
    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';

Wenn Sie die erfasste SQL überwachen möchten, zeigen Sie DBA_SQLSET_STATEMENTS an. Beispiel:

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

Bei Bedarf können Sie die Größe und den freien Speicherplatz von SYSAUX überwachen. Beispiel:

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;

Daten in Autonomous Database migrieren

Nachdem Sie eine ausreichende Menge an SQL in der Quell-Oracle Database mit aktiviertem Automatic SQL Tuning Set (ASTS) erfasst haben, führen Sie die Migration zu Autonomous Database aus.

Informationen zu Optionen für die Migration zu Autonomous Database finden Sie unter Oracle-Datenbanken zu Autonomous Database migrieren.

Automatisches SQL Tuning Set aus Oracle Database-Quelldatenbank exportieren

Nachdem Sie die Migration zu Autonomous Database durchgeführt haben, exportieren Sie das Automatic SQL Tuning Set (ASTS) aus der Oracle Database-Quelldatenbank.

  1. Erstellen und füllen Sie in der Oracle Database-Quelldatenbank eine Staging-Tabelle für ASTS-Daten.

    Erstellen Sie als DBA-Benutzer die Staging-Tabelle:

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

    Nach Abschluss dieses Vorgangs enthält die Staging-Tabelle die SQL-Anweisungen, die in der Oracle Database-Quelldatenbank erfasst wurden.

  2. Staging-Tabelle exportieren.

    Beispiel: Exportieren Sie die Staging-Tabelle mit Oracle Data Pump:

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

Weitere Informationen finden Sie unter DBMS_SQLSET.

Automatisches SQL-Tuning-Set in Autonomous Database importieren

Nachdem Sie die Migration zu Autonomous Database durchgeführt und das Automatic SQL Tuning Set (ASTS) aus der Oracle Database-Quelldatenbank, die Sie migrieren, exportiert haben, importieren Sie ASTS in Autonomous Database.

  1. Importieren Sie die Staging-Datei in Autonomous Database.

    Mit Oracle Data Pump die Staging-Tabelle in Autonomous Database importieren Laden Sie zuerst die Dumpdatei, die Sie aus Ihrer Oracle Database-Quelldatenbank exportiert haben, in einen Cloud Object Storage-Bucket hoch, und importieren Sie dann die Dumpdatei.

    Beispiel: Führen Sie als ADMIN-Benutzer die folgenden Befehle aus:

    1. Erstellen Sie die Zugangsdaten für den Zugriff auf den Cloudobjektspeicher-Bucket.
      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'BUCKET_CREDENTIAL',
          username => 'oracleidentitycloudservice/aaaaa@bbbbb.com',
          password => 'password'
        );
      END;
      /

      Weitere Informationen finden Sie unter Zugangsdaten für den Zugriff auf Cloud Services erstellen.

    2. Verwenden Sie Oracle Data Pump, um die Dumpdatei mit den ASTS-Daten in die Autonomous Database-Instanz zu importieren.
      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

      Weitere Informationen finden Sie unter Daten mit Oracle Data Pump in Autonomous Database importieren.

    Hinweis

    Stellen Sie sicher, dass die Zeitzonendatei in Autonomous Database mit dem Wert in der Oracle Database-Quelldatei übereinstimmt, in der Sie die Dumpdatei erstellt haben. Wenn die Zeitzone nicht übereinstimmt, löst die Datenbank den folgenden Fehler aus:
    ORA-39002: invalid operation' error raised by dbms_datapump.start_job'

    Weitere Informationen finden Sie unter Datetime-Datentypen und Zeitzonenunterstützung und Updates von Zeitzonendateien in Autonomous Database verwalten.

  2. Entpacken Sie in der migrierten Autonomous Database die SQL-Anweisungen aus der Staging-Tabelle, und laden Sie sie in das Ziel ASTS.
    BEGIN
       dbms_sqlset.unpack_stgtab('SYS_AUTO_STS','SYS',TRUE,'ASTS_TABLE');
    END;
    /

Weitere Informationen finden Sie unter DBMS_SQLSET.

SPM-Einstellung in Echtzeit in Autonomous Database prüfen

Beschreibt die Schritte zur Prüfung, ob SPM in Echtzeit in Autonomous Database aktiviert ist.

Echtzeit-SPM ist in Autonomous Database standardmäßig aktiviert. Sie können den Echtzeit-SPM-Modus wie folgt prüfen:

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

Der Modus AUTO (automatische) Echtzeit-SPM gibt an, dass Echtzeit-SPM aktiviert ist.

Wenn Echtzeit-SPM nicht aktiviert ist, verwenden Sie den folgenden Befehl, um es zu aktivieren:

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