Migrer les plans d'exécution SQL existants vers la base de données Autonomous AI pour réduire le risque de régressions des performances SQL

Explique comment réduire le risque de régression des performances SQL lors de la migration vers Autonomous AI Database.

A propos de la migration vers une base de données d'IA autonome avec gestion des plans SQL en temps réel (SPM)

Décrit l'utilisation de la gestion des plans SQL en temps réel lorsque vous migrez d'une base de données Oracle Database source vers une base de données Autonomous AI.

Lorsque vous migrez d'une base de données Oracle Database source vers une base de données d'IA autonome, vous pouvez utiliser la gestion des plans SQL en temps réel (SPM). Vous pouvez ainsi capturer les plans d'exécution SQL à partir de votre base de données source et les déplacer vers l'ensemble de réglages SQL automatiques (ASTS) sur la base de données Autonomous AI afin que les plans continuent de fonctionner avec les mêmes performances ou avec de meilleures performances après la migration. Le module SPM en temps réel permet aux plans de changer sur une base de données Autonomous AI, mais si le module SPM en temps réel détecte des performances médiocres, il peut utiliser un plan provenant de la base de données pré-migrée si ce plan fournit de meilleures performances (le module SPM en temps réel utilise les plans dans l'ensemble de réglages SQL automatiques (ASTS) uniquement s'ils fournissent de meilleures performances).

Gardez à l'esprit les points suivants pour l'utilisation de SPM en temps réel avec une migration vers Autonomous AI Database :

  • SPM repose sur des instructions SQL reproductibles. SPM n'est pas adapté aux bases de données qui utilisent des valeurs littérales dans des instructions SQL ou pour des instructions SQL hautement dynamiques, par exemple dans des environnements de requête ad hoc. Toutefois, si les instructions SQL utilisent des valeurs littérales et que le paramètre CURSOR_SHARING est défini sur FORCE, SPM fonctionne.
  • Dans la base de données Oracle Database source que vous migrez vers Autonomous AI Database, vous capturez les instructions SQL d'application dans un ensemble de réglages SQL (SYS_AUTO_SYS). Cela peut consommer de l'espace dans SYSAUX, mais ne consomme généralement pas plus de quelques gigaoctets (même pour les systèmes volumineux). Vous pouvez surveiller l'utilisation de SYSAUX et augmenter la taille du tablespace, si nécessaire.
  • SPM en temps réel ne peut pas empêcher toutes les régressions de performances, mais il peut réduire considérablement le risque de régressions de performances dues aux modifications de plan d'exécution SQL.

Pour activer SQL Plan Management (SPM) sur votre base de données Oracle Database source et migrer la base de données vers Autonomous AI Database, procédez comme suit :

  1. Activer l'ensemble de réglages SQL automatique sur l'instance Oracle Database source

  2. Migration de vos données vers une base de données d'IA autonome

  3. Exporter l'ensemble de réglages SQL automatique à partir d'Oracle Database source

  4. Import d'un ensemble de réglages SQL automatiques vers une base de données Autonomous AI

  5. Vérification de votre paramètre SPM en temps réel sur la base de données Autonomous AI

Pour plus d'informations, reportez-vous à :

Activer l'ensemble de réglages SQL automatique sur l'instance Oracle Database source

Avant de migrer vers Autonomous AI Database, activez l'ensemble de réglages SQL automatiques (ASTS) sur votre instance Oracle Database source.

ASTS doit être exécuté pendant suffisamment de temps pour couvrir votre charge globale et capturer la totalité ou la plupart des instructions SQL et de leurs plans d'exécution. Par conséquent, envisagez d'activer ASTS avec un délai avant la migration vers Autonomous AI Database. Par exemple, pour une application financière ou commerciale, capturez le traitement de fin de mois ou de fin d'année.

Dans Oracle Database source, en tant qu'utilisateur DBA, activez l'ensemble de réglages SQL automatique (ASTS) :

  1. Sur la base de données à migrer, activez ASTS.
    BEGIN
      dbms_auto_task_admin.enable(
        client_name => 'Auto STS Capture Task',
        operation   => NULL,
        window_name => NULL);
    END;
    /

    Pour plus d'informations, reportez-vous à DBMS_AUTO_TASK_ADMIN.

  2. Vérifiez que la tâche en arrière-plan ASTS est activée.
    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';

Pour surveiller l'instruction SQL capturée, affichez DBA_SQLSET_STATEMENTS. Par exemple :

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

Si nécessaire, vous pouvez surveiller la taille et l'espace libre de SYSAUX. Par exemple :

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;

Migration de vos données vers une base de données d'IA autonome

Après avoir capturé une quantité suffisante d'instructions SQL sur l'instance Oracle Database source avec l'ensemble de réglages SQL automatiques (ASTS) activé, effectuez la migration vers la base de données Autonomous AI.

Reportez-vous à Migration de bases de données Oracle vers une base de données d'IA autonome pour connaître les options de migration vers une base de données d'IA autonome.

Exporter l'ensemble de réglages SQL automatique à partir d'Oracle Database source

Après avoir effectué la migration vers la base de données Autonomous AI, exportez l'ensemble de réglages SQL automatiques (ASTS) à partir de votre base de données Oracle Database source.

  1. Dans Oracle Database source, créez et alimentez une table intermédiaire pour les données ASTS.

    En tant qu'utilisateur DBA, créez la table intermédiaire :

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

    Une fois cette opération terminée, la table intermédiaire contient les instructions SQL capturées sur l'instance Oracle Database source.

  2. Exportez la table intermédiaire.

    Par exemple, exportez la table intermédiaire à l'aide d'Oracle Data Pump :

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

Pour plus d'informations, reportez-vous à DBMS_SQLSET.

Import d'un ensemble de réglages SQL automatiques vers une base de données Autonomous AI

Après avoir effectué la migration vers la base de données Autonomous AI et exporté l'ensemble de réglages SQL automatiques (ASTS) à partir de la base de données Oracle Database source que vous migrez, importez les ASTS vers votre base de données Autonomous AI.

  1. Importez le fichier intermédiaire dans votre base de données Autonomous AI.

    Utilisez Oracle Data Pump pour importer la table intermédiaire dans la base de données Autonomous AI. Téléchargez d'abord le fichier dump que vous avez exporté à partir de votre instance Oracle Database source vers un bucket Cloud Object Storage, puis importez-le.

    Par exemple, lorsque l'utilisateur ADMIN exécute les commandes suivantes :

    1. Créez les informations d'identification permettant d'accéder au bucket de banque d'objet cloud.
      BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
          credential_name => 'BUCKET_CREDENTIAL',
          username => 'oracleidentitycloudservice/aaaaa@bbbbb.com',
          password => 'password'
        );
      END;
      /
    2. Utilisez Oracle Data Pump pour importer le fichier dump avec les données ASTS vers votre instance de base de données Autonomous AI.
      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
    Remarque

    Assurez-vous que le fichier de fuseau horaire dans la base de données Autonomous AI correspond à la valeur dans l'instance Oracle Database source où vous avez créé le fichier dump. En cas de non-concordance de fuseau horaire, la base de données génère l'erreur suivante :
    ORA-39002: invalid operation' error raised by dbms_datapump.start_job'

    Pour plus d'informations, reportez-vous à Prise en charge des types de données de date/heure et des fuseaux horaires et à Gestion des mises à jour de fichier de fuseau horaire sur la base de données Autonomous AI.

  2. Dans la base de données Autonomous AI migrée, décompressez les instructions SQL de la table intermédiaire et chargez-les dans la base ASTS de destination.
    BEGIN
       dbms_sqlset.unpack_stgtab('SYS_AUTO_STS','SYS',TRUE,'ASTS_TABLE');
    END;
    /

Pour plus d'informations, reportez-vous à DBMS_SQLSET.

Vérification de votre paramètre SPM en temps réel sur la base de données Autonomous AI

Décrit les étapes permettant de vérifier que SPM en temps réel est activé sur une base de données Autonomous AI.

Le SPM en temps réel est activé par défaut sur la base de données Autonomous AI. Vous pouvez vérifier le mode SPM en temps réel comme suit :

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

Le SPM en temps réel en mode AUTO (automatique) indique que le SPM en temps réel est activé.

Si le SPM en temps réel n'est pas activé, utilisez la commande suivante pour l'activer :

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