Migración de planes de ejecución de SQL existentes a Autonomous Database para mitigar el riesgo de regresiones de rendimiento de SQL

Describe cómo reducir el riesgo de regresiones de rendimiento SQL al migrar a Autonomous Database.

Acerca de la migración a Autonomous Database con gestión de planes SQL en tiempo real (SPM)

Describe el uso de la gestión de planes SQL en tiempo real al migrar de una instancia de Oracle Database de origen a Autonomous Database.

Al migrar de una instancia de Oracle Database de origen a Autonomous Database, puede utilizar la gestión de planes SQL (SPM) en tiempo real. Esto permite capturar los planes de ejecución SQL de la base de datos origen y moverlos al juego de ajustes SQL automáticos (ASTS) en Autonomous Database para que los planes sigan funcionando con el mismo rendimiento o mejor después de la migración. El SPM en tiempo real permite que los planes cambien en Autonomous Database, pero si el SPM en tiempo real ve un rendimiento deficiente, puede utilizar un plan que provenga de la base de datos migrada previamente si ese plan proporciona un mejor rendimiento (el SPM en tiempo real utiliza los planes del juego de ajustes SQL automáticos (ASTS) solo si proporcionan un mejor rendimiento).

Tenga en cuenta lo siguiente para utilizar el SPM en tiempo real con una migración a Autonomous Database:

  • SPM se basa en sentencias SQL repetibles. SPM no es adecuado para bases de datos que utilizan valores literales en sentencias SQL o para SQL altamente dinámico, como en entornos de consulta ad hoc. Sin embargo, si las sentencias SQL utilizan valores literales y el parámetro CURSOR_SHARING está definido en FORCE, SPM funcionará.
  • En la instancia de Oracle Database de origen que va a migrar a Autonomous Database, captura sentencias SQL de aplicación en un juego de ajustes SQL (SYS_AUTO_SYS). Esto puede consumir espacio en SYSAUX, pero normalmente no consume más de unos pocos gigabytes (incluso para sistemas grandes). Puede supervisar el uso de SYSAUX y aumentar el tamaño del tablespace, si es necesario.
  • La SPM en tiempo real no puede evitar todas las regresiones de rendimiento, pero puede reducir significativamente el riesgo de que se produzcan regresiones de rendimiento debido a cambios en el plan de ejecución SQL.

Realice los siguientes pasos para activar la gestión de planes SQL (SPM) en la instancia de Oracle Database de origen y migrar la base de datos a Autonomous Database:

  1. Activar Juego de Ajustes SQL Automáticos en Oracle Database de Origen

  2. Migración de datos a Autonomous Database

  3. Exportar Juego de Ajustes SQL Automáticos desde Oracle Database de Origen

  4. Importar juego de ajustes SQL automáticos a Autonomous Database

  5. Verificación de la configuración de SPM en tiempo real en Autonomous Database

Puede obtener más información en los siguientes enlaces:

Activar Juego de Ajustes SQL Automáticos en Oracle Database de Origen

Antes de migrar a Autonomous Database, active el juego de ajustes SQL automáticos (ASTS) en la Oracle Database de origen.

ASTS necesita ejecutarse durante el tiempo suficiente para cubrir la carga de trabajo y capturar todas o la mayoría de las sentencias SQL y sus planes de ejecución. Por lo tanto, considere activar ASTS con tiempo de entrega antes de la migración a Autonomous Database. Por ejemplo, para una aplicación financiera o de ventas, capture el procesamiento de fin de mes o de año.

En Oracle Database de origen, como usuario DBA active el juego de ajustes SQL automáticos (ASTS):

  1. En la base de datos que desea migrar, active ASTS.
    BEGIN
      dbms_auto_task_admin.enable(
        client_name => 'Auto STS Capture Task',
        operation   => NULL,
        window_name => NULL);
    END;
    /

    Consulte DBMS_AUTO_TASK_ADMIN para obtener más información.

  2. Verifique que la tarea en segundo plano de ASTS esté activada.
    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';

Si desea supervisar el SQL que se está capturando, consulte DBA_SQLSET_STATEMENTS. Por ejemplo:

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

Según sea necesario, puede supervisar el tamaño y el espacio libre de SYSAUX. Por ejemplo:

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;

Migración de datos a Autonomous Database

Después de capturar una cantidad suficiente de SQL en Oracle Database de origen con el juego de ajustes SQL automáticos (ASTS) activado, realice la migración a Autonomous Database.

Consulte Migración de bases de datos Oracle a Autonomous Database para obtener opciones para migrar a Autonomous Database.

Exportar Juego de Ajustes SQL Automáticos desde Oracle Database de Origen

Después de realizar la migración a Autonomous Database, exporte el juego de ajustes SQL automáticos (ASTS) desde la Oracle Database de origen.

  1. En Oracle Database de origen, cree y rellene una tabla temporal para los datos ASTS.

    Como usuario DBA, cree la tabla temporal:

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

    Una vez finalizada esta operación, la tabla temporal contiene las sentencias SQL capturadas en la Oracle Database de origen.

  2. Exportación de la tabla temporal.

    Por ejemplo, exporte la tabla temporal mediante Oracle Data Pump:

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

Consulte DBMS_SQLSET para obtener más información.

Importar juego de ajustes SQL automáticos a Autonomous Database

Después de realizar la migración a Autonomous Database y exportar el juego de ajustes SQL automáticos (ASTS) desde la Oracle Database de origen que está migrando, importe ASTS a Autonomous Database.

  1. Importe el archivo temporal a Autonomous Database.

    Utilice Oracle Data Pump para importar la tabla temporal en Autonomous Database. Cargue primero el archivo de volcado que ha exportado desde la instancia de Oracle Database de origen a un cubo de Cloud Object Storage y, a continuación, importe el archivo de volcado.

    Por ejemplo, como usuario ADMIN, ejecute estos comandos:

    1. Cree la credencial para acceder al cubo del almacén de objetos en la nube.
      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'BUCKET_CREDENTIAL',
          username => 'oracleidentitycloudservice/aaaaa@bbbbb.com',
          password => 'password'
        );
      END;
      /
    2. Utilice Oracle Data Pump para importar el archivo de volcado con los datos ASTS a la instancia de 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
    Nota

    Asegúrese de que el archivo de zona horaria de Autonomous Database coincide con el valor de la Oracle Database de origen en la que ha creado el archivo de volcado. Si hay una discrepancia de zona horaria, la base de datos emite el siguiente error:
    ORA-39002: invalid operation' error raised by dbms_datapump.start_job'

    Consulte Tipos de datos de fecha y hora y soporte de zona horaria y Gestión de actualizaciones de archivos de zona horaria en Autonomous Database para obtener más información.

  2. En la instancia de Autonomous Database migrada, desempaquete las sentencias SQL de la tabla temporal y cárguelas en el ASTS de destino.
    BEGIN
       dbms_sqlset.unpack_stgtab('SYS_AUTO_STS','SYS',TRUE,'ASTS_TABLE');
    END;
    /

Consulte DBMS_SQLSET para obtener más información.

Verificación de la configuración de SPM en tiempo real en Autonomous Database

Describe los pasos para verificar que el SPM en tiempo real esté activado en Autonomous Database.

El SPM en tiempo real está activado por defecto en Autonomous Database. Puede verificar el modo SPM en tiempo real de la siguiente manera:

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

El SPM en tiempo real del modo AUTO (automático) indica que el SPM en tiempo real está activado.

Si el SPM en tiempo real no está activado, utilice el siguiente comando para activarlo:

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