Migrar Planos de Execução de SQL Existentes para o Autonomous Database para Reduzir o Risco das Regressões de Desempenho de SQL

Descreve como reduzir o risco de regressões de desempenho de SQL ao migrar para o Autonomous Database.

Sobre a Migração para o Autonomous Database com SPM (Real-time SQL Plan Management)

Descreve o uso do Gerenciamento de Planos SQL em Tempo Real ao migrar de um Oracle Database de origem para o Autonomous Database.

Ao migrar de um Oracle Database de origem para o Autonomous Database, você pode usar o SPM (Real-time SQL Plan Management). Isso permite capturar os planos de execução de SQL do seu banco de dados de origem e movê-los para o ASTS (Automatic SQL Tuning Set) no Autonomous Database para que os planos continuem com o mesmo desempenho ou melhor desempenho após a migração. O SPM em tempo real permite que os planos mudem no Autonomous Database, mas se o SPM em tempo real perceber um desempenho ruim, ele poderá usar um plano proveniente do banco de dados pré-migrado se esse plano fornecer melhor desempenho (o SPM em tempo real usa os planos no ASTS (Automatic SQL Tuning Set) somente se fornecer melhor desempenho).

Lembre-se do seguinte para usar o SPM em tempo real com uma migração para o Autonomous Database:

  • O SPM depende de instruções SQL repetíveis. O SPM não é adequado para bancos de dados que usam valores literais em instruções SQL ou para SQL altamente dinâmico, como em ambientes de consulta ad-hoc. No entanto, se as instruções SQL usarem valores literais e o parâmetro CURSOR_SHARING estiver definido como FORCE, o SPM funcionará.
  • No Oracle Database de origem que você está migrando para o Autonomous Database, você captura instruções SQL do aplicativo em um conjunto de ajustes SQL (SYS_AUTO_SYS). Isso pode consumir espaço em SYSAUX, mas geralmente consome não mais do que alguns gigabytes (mesmo para sistemas grandes). Você pode monitorar o uso de SYSAUX e aumentar o tamanho do tablespace, se necessário.
  • O SPM em tempo real não pode impedir todas as regressões de desempenho, mas pode reduzir significativamente o risco de regressões de desempenho acontecerem devido a alterações no plano de execução de SQL.

Execute as seguintes etapas para ativar o SQL Plan Management (SPM) no Oracle Database de origem e migrar o banco de dados para o Autonomous Database:

  1. Ativar Conjunto de Ajuste SQL Automático no Oracle Database de Origem

  2. Migrar Dados para o Autonomous Database

  3. Exportar Conjunto de Ajuste SQL Automático do Oracle Database de Origem

  4. Importar Conjunto de Ajuste SQL Automático para o Autonomous Database

  5. Verificar Sua Definição de SPM em Tempo Real no Autonomous Database

Para obter mais informações, consulte:

Ativar Conjunto de Ajuste SQL Automático no Oracle Database de Origem

Antes de migrar para o Autonomous Database, ative o ASTS (Automatic SQL Tuning Set) no Oracle Database de origem.

O ASTS precisa ser executado por tempo suficiente para cobrir sua carga de trabalho e capturar todas ou a maioria das instruções SQL e seus planos de execução. Portanto, considere ativar o ASTS com lead time antes da migração para o Autonomous Database. Por exemplo, para um aplicativo financeiro ou de vendas, capture o processamento de final de mês ou de final de ano.

No Oracle Database de origem, como usuário DBA, ative o ASTS (Automatic SQL Tuning Set):

  1. No banco de dados que você deseja migrar, ative 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 obter mais informações.

  2. Verifique se a tarefa em segundo plano ASTS está ativada.
    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 quiser monitorar o SQL que está sendo capturado, exiba DBA_SQLSET_STATEMENTS. Por exemplo:

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

Conforme necessário, você pode monitorar o tamanho e o espaço livre de SYSAUX. Por exemplo:

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;

Migrar Dados para o Autonomous Database

Depois de capturar uma quantidade suficiente de SQL no Oracle Database de origem com o ASTS (Automatic SQL Tuning Set) ativado, execute a migração para o Autonomous Database.

Consulte Migrar Bancos de Dados Oracle para o Autonomous Database para obter opções de migração para o Autonomous Database.

Exportar Conjunto de Ajuste SQL Automático do Oracle Database de Origem

Depois de executar a migração para o Autonomous Database, exporte o ASTS (Automatic SQL Tuning Set) do Oracle Database de origem.

  1. No Oracle Database de origem, crie e preencha uma tabela intermediária para dados ASTS.

    Como usuário DBA, crie a tabela intermediária:

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

    Depois que essa operação for concluída, a tabela intermediária conterá as instruções SQL que foram capturadas no Oracle Database de origem.

  2. Exporte a tabela de teste.

    Por exemplo, exporte a tabela intermediária usando o Oracle Data Pump:

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

Consulte DBMS_SQLSET para obter mais informações.

Importar Conjunto de Ajuste SQL Automático para o Autonomous Database

Depois de executar a migração para o Autonomous Database e exportar o ASTS (Automatic SQL Tuning Set) do Oracle Database de origem que você está migrando, importe o ASTS para o seu Autonomous Database.

  1. Importe o arquivo de teste para o seu Autonomous Database.

    Use o Oracle Data Pump para importar a tabela intermediária para o Autonomous Database. Primeiro faça upload do arquivo de dump exportado do Oracle Database de origem para um bucket do Cloud Object Storage e, em seguida, importe o arquivo de dump.

    Por exemplo, à medida que o usuário ADMIN executa estes comandos:

    1. Crie a credencial para acessar o bucket do Cloud Object Store.
      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'BUCKET_CREDENTIAL',
          username => 'oracleidentitycloudservice/aaaaa@bbbbb.com',
          password => 'password'
        );
      END;
      /

      Consulte Criar Credenciais para Acessar Serviços em Nuvem para obter mais informações.

    2. Use o Oracle Data Pump para importar o arquivo de dump com os dados ASTS para sua instância do 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

      Consulte Importar Dados Usando o Oracle Data Pump no Autonomous Database para obter mais informações.

    Observação

    Certifique-se de que o arquivo de fuso horário no Autonomous Database corresponda ao valor no Oracle Database de origem no qual você criou o arquivo de dump. Se houver uma incompatibilidade de fuso horário, o banco de dados gerará o seguinte erro:
    ORA-39002: invalid operation' error raised by dbms_datapump.start_job'

    Consulte Tipos de Dados de Data/Hora e Suporte a Fuso Horário e Gerenciar Atualizações de Arquivo de Fuso Horário no Autonomous Database para obter mais informações.

  2. No Autonomous Database migrado, descompacte as instruções SQL da tabela intermediária e carregue-as no ASTS de destino.
    BEGIN
       dbms_sqlset.unpack_stgtab('SYS_AUTO_STS','SYS',TRUE,'ASTS_TABLE');
    END;
    /

Consulte DBMS_SQLSET para obter mais informações.

Verificar Sua Definição de SPM em Tempo Real no Autonomous Database

Descreve as etapas para verificar se o SPM em tempo real está ativado no Autonomous Database.

O SPM em tempo real é ativado por padrão no Autonomous Database. Você pode verificar o modo SPM em tempo real da seguinte forma:

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

O modo AUTO (automático) SPM em tempo real indica que o SPM em tempo real está ativado.

Se o SPM em tempo real não estiver ativado, use o seguinte comando para ativá-lo:

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