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

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

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

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

Wenn Sie von einer Oracle Database-Quelle zu Autonomous Database migrieren, können Sie Echtzeit-SQL-Planmanagement (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 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 Echtzeit-SPM jedoch eine schlechte Performance erkennt, 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 im automatischen SQL-Tuningset (ASTS), nur wenn sie eine bessere Performance bieten).

Beachten Sie Folgendes bei der Verwendung von Echtzeit-SPM mit 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 hochdynamische SQL-Anweisungen, 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 Verwendung von SYSAUX ü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 SQL-Ausführungsplanänderungen erheblich reduzieren.

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

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

  2. Daten zu 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 Quell-Oracle Database.

ASTS muss so lange ausgeführt werden, bis die Workload abgedeckt ist und alle oder die meisten SQL-Anweisungen und ihre Ausführungspläne erfasst werden. Erwägen Sie daher, ASTS vor der Migration zu Autonomous Database mit Vorlaufzeit zu aktivieren. Beispiel: Erfassen Sie für eine Finanz- oder Sales-Anwendung die Verarbeitung zum Monatsende oder zum Jahresende.

Aktivieren Sie in der Oracle Database-Quelle als DBA-Benutzer das automatische SQL Tuning Set (ASTS):

  1. Aktivieren Sie ASTS in der zu migrierenden Datenbank.
    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. Beispiele:

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. Beispiele:

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 zu Autonomous Database migrieren

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

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 ausgeführt haben, exportieren Sie das automatische SQL Tuning Set (ASTS) aus Ihrer Quell-Oracle Database.

  1. Erstellen und füllen Sie in der Quell-Oracle Database 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 Quell-Oracle Database erfasst wurden.

  2. Exportieren Sie die Staging-Tabelle.

    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 ausgeführt und das automatische SQL Tuning Set (ASTS) aus der zu migrierenden Quell-Oracle Database exportiert haben, importieren Sie ASTS in Autonomous Database.

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

    Verwenden Sie Oracle Data Pump, um die Staging-Tabelle in Autonomous Database zu importieren. Laden Sie zuerst die Dumpdatei hoch, die Sie aus der Quell-Oracle Database exportiert haben, in einen Cloud-Objektspeicher-Bucket, 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 Cloud-Objektspeicher-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 Quell-Oracle Database übereinstimmt, in der Sie die Dumpdatei erstellt haben. Bei einer nicht übereinstimmenden Zeitzone 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 Echtzeit-SPM in Autonomous Database aktiviert ist.

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

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

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

Wenn Echtzeit-SPM nicht aktiviert ist, aktivieren Sie es mit dem folgenden Befehl:

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