Gestion du partitionnement automatique sur Autonomous Database

Le partitionnement automatique permet d'analyser et d'automatiser la création de partition pour les tables et les index d'un schéma indiqué afin d'améliorer les performances et la gestion dans Autonomous Database.

Lorsqu'il est appliqué, le partitionnement automatique est transparent et ne nécessite aucune intervention ni maintenance de l'utilisateur.

Remarque

Le partitionnement automatique n'a pas d'incidence sur les stratégies de partitionnement existantes et s'ajoute au partitionnement manuel dans Autonomous Database. Les tables partitionnées manuellement sont exclues des tables candidates pour le partitionnement automatique.

A propos du partitionnement automatique

Le partitionnement automatique dans Autonomous Database analyse la charge globale d'application et applique automatiquement le partitionnement aux tables et à leurs index afin d'améliorer les performances ou de permettre une meilleure gestion des tables volumineuses.

La recherche des stratégies de partitionnement appropriées nécessite une connaissance approfondie de la charge globale d'application et de la distribution des données. Lorsque vous effectuez un partitionnement manuel, vous devez analyser la charge globale et choisir le mode d'application du partitionnement aux tables et aux index pour améliorer les performances des applications. Le partitionnement automatique permet aux utilisateurs Autonomous Database de bénéficier du partitionnement sans effectuer d'analyse manuelle du schéma et de la charge globale.

Le partitionnement automatique utilise une clé de partitionnement à colonne unique combinée avec le partitionnement à niveau unique. Le partitionnement automatique ne prend pas en charge les stratégies de partitionnement plus complexes telles que les tables partitionnées à plusieurs colonnes ou le partitionnement composite.

Le partitionnement automatique utilise l'une des méthodes de partitionnement suivantes :

  • AUTOMATIC INTERVAL : cette option est plus adaptée aux plages de valeurs de clé de partitionnement.
  • LIST AUTOMATIC : cette méthode de partitionnement s'applique aux valeurs de clé de partitionnement distinctes.
  • HASH : applique le partitionnement aux valeurs de hachage de la clé de partitionnement.

Pour plus d'informations, reportez-vous à Concepts relatifs au partitionnement.

Le partitionnement automatique fournit les fonctionnalités suivantes :

  • Analyse la charge globale d'application et recherche la stratégie de partitionnement optimale pour améliorer les performances de requête des tables pouvant être partitionnées automatiquement.
  • Fournit des API PL/SQL permettant de configurer le partitionnement automatique dans une base de données, de générer des rapports sur les résultats du partitionnement, et de générer une stratégie de partitionnement identifiée pour une charge globale donnée et de lui appliquer celle-ci.
Remarque

Le partitionnement automatique requiert des appels explicites aux API PL/SQL DBMS_AUTO_PARTITION pour recommander le partitionnement automatique et l'appliquer à une instance Autonomous Database.

Fonctionnement du partitionnement automatique

Contrairement à l'indexation automatique, le partitionnement automatique n'est pas régulièrement exécuté en tant que tâche d'arrière-plan. Le partitionnement automatique est exécuté uniquement lorsque vous l'appelez à l'aide de la fonction DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Lorsqu'il est appelé, le partitionnement automatique identifie les tables candidates pour le partitionnement automatique, évalue les modèles de partition et implémente une stratégie de partitionnement.

Lorsque vous appelez le partitionnement automatique, il effectue les tâches suivantes :

  1. Identifie les tables candidates pour le partitionnement automatique en analysant la charge globale des tables candidates sélectionnées.

    Par défaut, le partitionnement automatique utilise les informations de workload collectées dans une instance Autonomous Database à des fins d'analyse. Selon la taille de la charge globale, un échantillon de requêtes peut être envisagé.

  2. Evalue les modèles de partition en fonction de l'analyse de la charge globale, de la quantification et de la vérification des gains de performances :

    1. Des modèles de partition vides candidats avec des statistiques synthétisées sont créés en interne et analysés en vue d'améliorer les performances.

    2. Le modèle candidat présentant la réduction d'E/S estimée la plus élevée est choisi comme stratégie de partitionnement optimale et est implémenté en interne pour tester et vérifier les performances.

    3. Si un modèle de partition candidat n'améliore pas les performances au-delà des critères de performances et de régression indiqués, le partitionnement automatique n'est pas recommandé.

  3. Implémente la stratégie de partitionnement optimale, s'il est configuré de manière à l'effectuer, pour les tables analysées par les procédures de partitionnement automatique.

Configuration du partitionnement automatique

Utilisez la procédure DBMS_AUTO_PARTITION.CONFIGURE pour configurer les options de partitionnement automatique.

Activer et implémenter les recommandations

EXEC DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_MODE','IMPLEMENT');

Activer les recommandations, sans les implémenter

EXEC DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_MODE','REPORT ONLY');

Désactivation des nouvelles recommandations et implémentation de celles-ci

EXEC DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_MODE','OFF');
Remarque

Ce mode ne désactive pas les tables partitionnées automatiquement existantes.

Gestion des schémas et des tables pour le partitionnement automatique

Utilisez les paramètres AUTO_PARTITION_SCHEMA et AUTO_PARTITION_TABLE pour indiquer les schémas et les tables à prendre en compte pour le partitionnement automatique.
Remarque

Lorsque le partitionnement automatique est appelé, tous les schémas et toutes les tables des schémas gérés par l'utilisateur sont pris en compte pour le partitionnement automatique si les listes d'inclusion et d'exclusion sont vides.
  • Si la liste d'inclusion et la liste d'exclusion sont vides, ajoutez le schéma HR et la table SH.SALES à la liste d'exclusion, ce qui évite l'analyse de partitionnement automatique de ces objets uniquement.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => 'HR',
             ALLOW           => FALSE);
    
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_TABLE', 
             PARAMETER_VALUE => 'SH.SALES',
             ALLOW           => FALSE);
    END;
    /
  • Après l'exécution de l'exemple précédent, utilisez la commande suivante pour enlever le schéma HR de la liste d'exclusion.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => 'HR',
             ALLOW           => NULL);
    END;
    /
  • Utilisez la commande suivante pour enlever tous les schémas de la liste d'exclusion.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => NULL,
             ALLOW           => TRUE);
    END;
    /
  • Si les listes d'inclusion et d'exclusion sont vides, l'exemple suivant ajoute le schéma HR à la liste d'inclusion. Dès que la liste d'inclusion n'est plus vide, seuls les schémas qu'elle contient sont pris en compte.

    Dans cet exemple, seul le schéma HR est candidat pour le partitionnement automatique.

    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
             PARAMETER_NAME  => 'AUTO_PARTITION_SCHEMA', 
             PARAMETER_VALUE => 'HR',
             ALLOW           => TRUE);
    END;
    /

Gestion de la durée de conservation des rapports de partitionnement automatique

Définissez la durée de conservation des rapports de partitionnement automatique sur 365 jours.

BEGIN
    DBMS_AUTO_PARTITION.CONFIGURE(
         PARAMETER_NAME  => 'AUTO_PARTITION_REPORT_RETENTION', 
         PARAMETER_VALUE => '365');
END;
/
Pour plus d'informations, reportez-vous à Procédure CONFIGURE.

Utilisation du partitionnement automatique

décrit le flux et les processus généraux d'utilisation et de gestion du partitionnement automatique dans Autonomous Database.

  1. Choisissez la base de données pour le partitionnement automatique.

    En général, Oracle recommande d'utiliser le partitionnement automatique dans les bases de données clonées ou créées manuellement plutôt que dans les bases de données de production. L'analyse et la vérification du partitionnement automatique à l'aide de RECOMMEND_PARTITION_METHOD sont potentiellement des opérations gourmandes en ressources et à longue exécution qui peuvent ajouter un traitement indésirable à votre base de données.

    Afin d'utiliser une base de données secondaire pour l'analyse automatique de partitionnement, la base de données doit disposer d'informations sur votre charge globale dans un référentiel de charge globale SQL géré en interne.

    1. Utilisez une base de données clonée pour le partitionnement automatique.

      Autonomous Database collecte automatiquement les informations de charge globale au fil du temps dans un référentiel de charge globale SQL géré en interne, maintenu dans l'ensemble de réglages SQL (SYS_AUTO_STS). Si vous clonez votre base de données de production après avoir exécuté la charge globale pendant un certain temps, le clone disposera des informations nécessaires sur la charge globale. Vous pouvez utiliser le partitionnement automatique avec ces clones sans effectuer d'actions supplémentaires.

      Reportez-vous à Clonage d'une instance Autonomous Database.

    2. Utilisez d'autres bases de données pour le partitionnement automatique.

      Vous pouvez exécuter la charge globale manuellement pour collecter les informations sur la charge globale nécessaires. Si vous exécutez manuellement la charge globale avant d'utiliser le partitionnement automatique, toute instance Autonomous Database contenant les données et les schémas souhaités peut être utilisée pour le partitionnement automatique après l'exécution de la charge globale, qu'elle soit clonée ou créée manuellement.

  2. Recommandez le partitionnement automatique.

    Utilisez RECOMMEND_PARTITION_METHOD pour analyser votre base de données, des schémas spécifiques ou des tables spécifiques afin d'identifier la stratégie de partitionnement optimale, le cas échéant. La recommandation analyse la charge globale et les schémas pour vérifier les gains de performances en exécutant la charge globale sur une table auxiliaire créée en interne. Cette opération peut être gourmande en ressources et à longue durée d'exécution, ce qui nécessite de l'UC et de l'E/S pour créer la table auxiliaire et vérifier les performances. Vous aurez également temporairement besoin d'espace supplémentaire, de 1 à 1,5 fois votre plus grande table candidate.

  3. Appliquez la recommandation.

    Les recommandations peuvent être implémentées à l'aide de la procédure APPLY_RECOMMENDATION dans la base de données dans laquelle l'analyse des recommandations a été effectuée. Sinon, toute recommandation peut être extraite de la base de données utilisée pour l'analyse et appliquée à toute base de données, telle qu'un système de production. Le script nécessaire à la modification manuelle est stocké dans la colonne MODIFY_TABLE_DDL de la vue DBA_AUTO_PARTITION_RECOMMENDATION.

    Oracle recommande d'appliquer le partitionnement automatique à la base de données en période creuse. Bien que vos tables soient converties en tables partitionnées automatiquement, la conversion ajoute des besoins en ressources supplémentaires à votre système, tels que de l'UC et de l'E/S supplémentaires. Le partitionnement automatique nécessite jusqu'à 1,5 fois la taille de la table à modifier comme espace libre supplémentaire, selon les opérations DML simultanées en cours sur ces tables.

Génération des rapports de partitionnement automatique

Générez des rapports de partitionnement automatique à l'aide des fonctions REPORT_ACTIVITY et REPORT_LAST_ACTIVITY du package DBMS_AUTO_PARTITION.

Génération d'un rapport, au format texte brut, des opérations de partitionnement automatique d'une période spécifique

L'exemple suivant génère un rapport contenant les informations habituelles sur les opérations de partitionnement automatique des dernières 24 heures. Par défaut, le rapport est généré au format texte brut.

DECLARE
  Report clob := NULL
BEGIN
    Report := DBMS_AUTO_PARTITION.REPORT_ACTIVITY();
END;
/

Génération d'un rapport, au format HTML, des opérations de partitionnement automatique de mai 2021

L'exemple suivant génère un rapport contenant les informations de base sur les opérations de partitionnement automatique du mois de mai 2021. Le rapport est généré au format HTML et inclut uniquement un récapitulatif des opérations de partitionnement automatique.

DECLARE
  Report clob := NULL
BEGIN
    Report := DBMS_AUTO_PARTITION.REPORT_ACTIVITY(
                       ACTIVITY_START => TO_TIMESTAMP('2021-05-01', 'YYYY-MM-DD'),
                       ACTIVITY_END   => TO_TIMESTAMP('2021-06-01', 'YYYY-MM-DD'),
                       TYPE           => 'HTML',
                       SECTION        => 'SUMMARY',
                       LEVEL          => 'BASIC' );
END;
/

Génération d'un rapport, au format texte brut, de la dernière opération de partitionnement automatique

L'exemple suivant génère un rapport contenant les informations habituelles sur la dernière opération de partitionnement automatique. Par défaut, le rapport est généré au format texte brut.

DECLARE
  Report clob := NULL
BEGIN
    Report := DBMS_AUTO_PARTITION.REPORT_LAST_ACTIVITY();
END;
/

Pour plus d'informations, reportez-vous à REPORT_ACTIVITY Fonction.

Pour plus d'informations, reportez-vous à REPORT_LAST_ACTIVITY Fonction.

Exemples de scénario de partitionnement automatique

Exemples de scénario de partitionnement automatique à l'aide des fonctions et des procédures d'API DBMS_AUTO_PARTITION.

Générer une recommandation pour une table unique et l'appliquer manuellement

  1. Définissez le paramètre AUTO_PARTITION_MODE sur REPORT ONLY pour permettre l'établissement et la vérification d'une recommandation de partitionnement automatique. La recommandation n'est pas appliquée à la table.
    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
            PARAMETER_NAME  => 'AUTO_PARTITION_MODE', 
            PARAMETER_VALUE => 'REPORT ONLY');
    END;
    /
  2. Vérifiez que la table TPCH.LINEITEM est candidate pour le partitionnement automatique. Cette étape est facultative et recommandée lorsque vous effectuez un ciblage sélectif de tables uniques.
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE(
               TABLE_OWNER => 'TPCH',
               TABLE_NAME  => 'LINEITEM')
    FROM DUAL;

    Si la table est un candidat valide, lorsque vous appelez le partitionnement automatique pour une analyse de recommandation, elle est renvoyée avec la valeur VALID. Sinon, les critères de violation s'affichent.

    Reportez-vous à VALIDATE_CANDIDATE_TABLE Fonction pour obtenir la liste des critères d'admissibilité des tables candidates.

  3. Appelez l'API DBMS_AUTO_PARTITION afin de générer une recommandation pour la table TPCH.LINEITEM.
    -- DEFINE SQLPLUS BIND VARIABLE FOR RECOMMENDATION ID
    VARIABLE RECOMMENDATION_ID VARCHAR2(32);
    BEGIN
      :RECOMMENDATION_ID := DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD(
                                 TABLE_OWNER => 'TPCH',
                                 TABLE_NAME  => 'LINEITEM');
    END;
    /

    L'analyse et la vérification de recommandation que vous effectuez à l'aide de DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD peuvent être des opérations gourmandes en ressources et à long terme, et peuvent prendre un temps considérable. Vous devez effectuer cette étape sur une base de données qui n'est pas votre système de production principal. Oracle recommande de doter l'opération de vérification de ressources suffisantes en choisissant le service HIGH.

  4. Vérifiez la recommandation. La vue DBA_AUTO_PARTITION_RECOMMENDATIONS contient les informations sur la recommandation. Dans cet exemple, vérifiez la clé de partitionnement et la méthode de partitionnement recommandées.
    SELECT PARTITION_METHOD, PARTITION_KEY
      FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
      WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;
    

    Vous pouvez également interroger la même vue pour obtenir le rapport d'analyse des performances généré pour la charge globale après le partitionnement de la table conformément à la recommandation.

    SELECT REPORT
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;
    
  5. Après la validation manuelle de la recommandation, appliquez-la. Si vous appliquez la recommandation dans la base de données dans laquelle l'analyse de recommandation a été effectuée, appliquez-la en exécutant la procédure APPLY_RECOMMENDATION.
    BEGIN
        DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION(
             RECOMMENDATION_ID => :RECOMMENDATION_ID);
    END;
    /

    Si vous voulez appliquer la recommandation à une autre base de données, telle que votre environnement de production, extrayez le DDL de modification. Exécutez ensuite le DDL de modification extrait dans la base de données cible. La requête permettant d'extraire le DDL de modification est la suivante :

    SELECT MODIFY_TABLE_DDL
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;
    

    Exemple de sortie du DDL de modification :

    BEGIN
        -- DBMS_AUTO_PARTITION RECOMMENDATION_ID C3F7A59E085C2F25E05333885A0A55EA
        --   FOR TABLE "TPCH"."LINEITEM"
        --   GENERATED AT 06/04/2021 20:52:29
        DBMS_AUTO_PARTITION.BEGIN_APPLY(EXPECTED_NUMBER_OF_PARTITIONS => 10);
    
        EXECUTE IMMEDIATE
        'ALTER TABLE "TPCH"."LINEITEM"
        MODIFY PARTITION BYLIST(SYS_OP_INTERVAL_HIGH_BOUND
            ("L_SHIPDATE", INTERVAL ''10'' MONTH, TIMESTAMP ''1992-01-01 00:00:00''))
        AUTOMATIC /* SCORE=23533.11;  */
        (PARTITION P_NULL VALUES(NULL))
        AUTO ONLINE PARALLEL';
    
        DBMS_AUTO_PARTITION.END_APPLY;
    EXCEPTION WHEN OTHERS THEN
        DBMS_AUTO_PARTITION.END_APPLY;
        RAISE;
    END;
    
  6. Pour vérifier que la table a été partitionnée automatiquement, recherchez les vues de catalogue.
    SELECT T.AUTO, T.PARTITIONING_TYPE, C.COLUMN_NAME
        FROM DBA_PART_TABLES T, DBA_PART_KEY_COLUMNS C
        WHERE T.OWNER = 'TPCH' AND T.TABLE_NAME = 'LINEITEM'
            AND T.OWNER = C.OWNER AND T.TABLE_NAME = C.NAME;
    

    Utilisez la requête suivante pour déterminer quand le partitionnement automatique a été appliqué à une table donnée.

    SELECT APPLY_TIMESTAMP_START, APPLY_TIMESTAMP_END
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE TABLE_OWNER = 'TPCH' AND TABLE_NAME = 'LINEITEM';
    

Pour plus d'informations, reportez-vous à Procédure CONFIGURE.

Pour plus d'informations, reportez-vous à VALIDATE_CANDIDATE_TABLE Fonction.

Pour plus d'informations, reportez-vous à RECOMMEND_PARTITION_METHOD Function.

Pour plus d'informations, reportez-vous à APPLY_RECOMMENDATION Procédure.

Générer une recommandation pour des tables admissibles et l'appliquer manuellement

  1. Définissez le paramètre AUTO_PARTITION_MODE sur REPORT ONLY pour permettre l'établissement et la vérification d'une recommandation de partitionnement automatique. La recommandation n'est pas appliquée aux tables existantes.
    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
            PARAMETER_NAME  => 'AUTO_PARTITION_MODE', 
            PARAMETER_VALUE => 'REPORT ONLY');
    END;
    /
  2. Appelez l'API DBMS_AUTO_PARTITION afin de générer une table de recommandation.
    -- DEFINE SQLPLUS BIND VARIABLE FOR RECOMMENDATION ID
    VARIABLE RECOMMENDATION_ID VARCHAR2(32);
    BEGIN
      :RECOMMENDATION_ID := DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD();
    END;
    /

    L'analyse et la vérification de recommandation sont des opérations gourmandes en ressources et à longue durée d'exécution, et peuvent prendre un temps considérable. Sur les bases de données secondaires autres que de production, Oracle recommande de doter la vérification de ressources suffisantes en choisissant le service HIGH.

  3. Recherchez la vue DBA_AUTO_PARTITION_RECOMMENDATIONS pour visualiser les tables qui ont été analysées.
    SELECT TABLE_OWNER, TABLE_NAME, PARTITION_METHOD, PARTITION_KEY
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID
        ORDER BY RECOMMENDATION_SEQ;
    
  4. Utilisez cette requête pour effectuer une exploration vers le bas dans le rapport d'une table spécifique qui a été analysée lors de l'exécution, la table TPCH.LINEITEM dans l'exemple suivant.
    SELECT REPORT
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID
            AND TABLE_OWNER = 'TPCH'
            AND TABLE_NAME  = 'LINEITEM';
    
  5. Exécutez la procédure APPLY_RECOMMENDATION pour appliquer la recommandation.
    BEGIN
        DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION(
             RECOMMENDATION_ID => :RECOMMENDATION_ID);
    END;
    /

    Vous pouvez également appliquer les recommandations d'une table spécifique qui a été analysée, la table TPCH.LINEITEM dans l'exemple suivant.

    BEGIN
        DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION(
            RECOMMENDATION_ID => :RECOMMENDATION_ID,
            TABLE_OWNER       => 'TPCH',
            TABLE_NAME        => 'LINEITEM');
    END;
    /

Pour plus d'informations, reportez-vous à Procédure CONFIGURE.

Pour plus d'informations, reportez-vous à RECOMMEND_PARTITION_METHOD Function.

Pour plus d'informations, reportez-vous à APPLY_RECOMMENDATION Procédure.

Remarque

Les recommandations de partitionnement automatique générées par la fonction RECOMMEND_PARTITION_METHOD ont une limite de temps, indiquée par le paramètre TIME_LIMIT, avec une valeur par défaut de 1 jour. Si vous analysez un système volumineux comportant de nombreuses tables candidates, un seul appel peut ne pas générer de recommandation pour toutes les tables pouvant être partitionnées. Vous pouvez appeler la recommandation de partitionnement automatique à plusieurs reprises en toute sécurité pour générer des recommandations pour des tables supplémentaires. Lorsque la fonction est appelée et qu'aucune ligne ne figure dans DBA_AUTO_PARTITION_RECOMMENDATIONS pour RECOMMENDATION_ID, la fonction n'a trouvé aucune autre table candidate pour le partitionnement automatique.

Générer des recommandations pour les tables admissibles et les appliquer automatiquement

  1. Définissez le paramètre AUTO_PARTITION_MODE sur REPORT ONLY pour permettre l'établissement et la vérification d'une recommandation de partitionnement automatique. La recommandation n'est pas appliquée aux tables existantes.
    BEGIN
        DBMS_AUTO_PARTITION.CONFIGURE(
            PARAMETER_NAME  => 'AUTO_PARTITION_MODE', 
            PARAMETER_VALUE => 'IMPLEMENT');
    END;
    /
  2. Appelez l'API DBMS_AUTO_PARTITION afin de générer une table de recommandation.
    -- DEFINE SQLPLUS BIND VARIABLE FOR RECOMMENDATION ID
    VARIABLE RECOMMENDATION_ID VARCHAR2(32);
    BEGIN
      :RECOMMENDATION_ID := DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD();
    END;
    /

    L'analyse et la vérification de recommandation sont des opérations gourmandes en ressources et à longue durée d'exécution, et peuvent prendre un temps considérable. Sur les bases de données secondaires autres que de production, Oracle recommande de doter la vérification de ressources suffisantes en choisissant le service HIGH.

  3. Recherchez la vue DBA_AUTO_PARTITION_RECOMMENDATIONS pour visualiser les tables qui ont été analysées.
    SELECT TABLE_OWNER, TABLE_NAME, PARTITION_METHOD, PARTITION_KEY
        FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
        WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID
        ORDER BY RECOMMENDATION_SEQ;
    
  4. Utilisez la fonction REPORT_LAST_ACTIVITY pour extraire le rapport sur les actions effectuées lors de la dernière exécution.
    SELECT DBMS_AUTO_PARTITION.REPORT_LAST_ACTIVITY() FROM DUAL;
    

Pour plus d'informations, reportez-vous à Procédure CONFIGURE.

Pour plus d'informations, reportez-vous à RECOMMEND_PARTITION_METHOD Function.

Pour plus d'informations, reportez-vous à REPORT_LAST_ACTIVITY Fonction.

Vues du dictionnaire de données pour le partitionnement automatique

Deux nouvelles vues et une vue mise à jour sont disponibles dans le dictionnaire de données pour obtenir des informations sur la configuration du partitionnement automatique et des recommandations dans votre base de données.

DBMS_AUTO_PARTITION DBA_AUTO_PARTITION_CONFIG Vue

Affiche les paramètres de configuration actuels du partitionnement automatique.

Colonne Description
PARAMETER_NAME Nom du paramètre de configuration.
PARAMETER_VALUE Valeur du paramètre de configuration.
LAST_MODIFIED Heure, au format UTC, de la dernière modification de la valeur du paramètre.
MODIFIED_BY Utilisateur à l'origine de la dernière modification de la valeur du paramètre

Vue DBMS_AUTO_PARTITION DBA_AUTO_PARTITION_RECOMMENDATIONS

Lorsque vous exécutez CONFIGURE ou RECOMMEND_PARTITION, les résultats de ces procédures sont stockés dans cette vue. RECOMMENDATION_ID est utilisé dans plusieurs procédures et fonctions.

Colonne Description
TABLE_OWNER Propriétaire de la table
TABLE_NAME Propriétaire de la table
PARTITION_METHOD Méthode de partitionnement recommandée. Reportez-vous à Procédure CONFIGURE.
PARTITION_KEY Clé de partitionnement recommandée. NULL signifie que l'analyse est terminée et qu'il est recommandé de ne pas partitionner la table.
GENERATE_TIMESTAMP Heure (UTC) de la génération de cette recommandation.
RECOMMENDATION_ID ID utilisé avec les API DBMS_AUTO_PARTITION pour obtenir des informations supplémentaires sur cette recommandation.
RECOMMENDATION_SEQ Lorsqu'un ID de recommandation comporte des recommandations pour plusieurs tables, indique l'ordre de génération des recommandations. Des rapports sur les performances sont générés si les recommandations précédentes ont été appliquées. Par exemple, le rapport pour RECOMMENDATION_SEQ = 2 suppose que les recommandations ont été appliquées à RECOMMENDATION_SEQ = 1 et à RECOMMENDATION_SEQ = 2.
MODIFY_TABLE_DDL DDL qui serait ou a été utilisé pour appliquer la recommandation.
APPLY_TIMESTAMP_START Heure, au format UTC, de démarrage de l'application de cette recommandation. Indique NULL si la recommandation n'a pas été appliquée.
APPLY_TIMESTAMP_END Heure (au format UTC) de fin de l'application de cette recommandation. Indique NULL si la recommandation n'a pas été appliquée ou si l'application n'est pas terminée.
REPORT Rapport SQL Performance Analyzer de l'exécution SQL sur la base de données après application de la recommandation.

DBMS_AUTO_PARTITION Mises à jour des vues existantes

Décrit les modifications apportées aux vues existantes suite à l'implémentation du partitionnement automatique.

Dans *_PART_TABLES, la colonne AUTO (VARCHAR2(3)) a été ajoutée. Ses valeurs sont les suivantes :
  • YES : si la table a été partitionnée par DBMS_AUTO_PARTITION.
  • NO : si la table n'a pas été partitionnée par DBMS_AUTO_PARTITION.