Package DBMS_AUTO_PARTITION

Le package DBMS_AUTO_PARTITION fournit des sous-programmes d'administration pour la gestion du partitionnement automatique des schémas et des tables.

Procédure de configuration

Cette procédure configure les paramètres de partitionnement automatique dans Autonomous Database.

Syntaxe

DBMS_AUTO_PARTITION.CONFIGURE (
     PARAMETER_NAME     IN VARCHAR2,
     PARAMETER_VALUE    IN VARCHAR2,
     ALLOW              IN BOOLEAN    DEFAULT TRUE);

Paramètres

Paramètre Description

PARAMETER_NAME

Nom du paramètre de configuration de partitionnement automatique à mettre à jour. Il peut avoir l'une des valeurs suivantes :

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODE définit le mode d'opération de partitionnement automatique et possède l'une des valeurs suivantes :
  • IMPLEMENT : dans ce mode, le partitionnement automatique génère un rapport et modifie la table existante à l'aide de la méthode de partition recommandée.
  • REPORT ONLY : dans ce mode, le partitionnement automatique génère un rapport, mais les tables existantes ne sont pas modifiées. Il s'agit de la valeur par défaut.
  • OFF : dans ce mode, le partitionnement automatique ne peut pas générer, prendre en compte ou appliquer des recommandations. Elle ne désactive pas les tables partitionnées automatiques existantes.
AUTO_PARTITION_SCHEMA définit les schémas à inclure ou à exclure de l'utilisation du partitionnement automatique. Son comportement est contrôlé par le paramètre allow. Le processus de partitionnement automatique gère deux listes de schémas.
  1. La liste d'inclusion est la liste des schémas, sensibles à la casse, qui peuvent utiliser le partitionnement automatique.
  2. La liste d'exclusion est la liste des schémas, sensibles à la casse, qui ne peuvent pas utiliser le partitionnement automatique.

Au départ, les deux listes sont vides et tous les schémas de la base de données peuvent utiliser le partitionnement automatique. Si la liste d'inclusion contient un ou plusieurs schémas, seuls les schémas répertoriés dans la liste d'inclusion peuvent utiliser le partitionnement automatique. Si la liste d'inclusion est vide et que la liste d'exclusion contient un ou plusieurs schémas, tous les schémas utilisent le partitionnement automatique, à l'exception des schémas répertoriés dans la liste d'exclusion. Si les deux listes contiennent un ou plusieurs schémas, tous les schémas utilisent le partitionnement automatique, à l'exception des schémas répertoriés dans la liste d'exclusion. AUTO_PARTITION_TABLE définit les tables à inclure ou à exclure de l'utilisation du partitionnement automatique. La valeur du paramètre est <schema_name>.<table_name>. Le processus de partitionnement automatique gère deux listes de tables.

  1. La liste d'inclusion est la liste des tables sensibles à la casse qui peuvent utiliser le partitionnement automatique.
  2. La liste d'exclusion est la liste des tables sensibles à la casse qui ne peuvent pas utiliser le partitionnement automatique.

Au départ, les deux listes sont vides et toutes les tables de la base de données peuvent utiliser le partitionnement automatique. Si la liste d'inclusion contient une ou plusieurs tables, seules celles répertoriées dans la liste d'inclusion peuvent utiliser le partitionnement automatique. Si la liste d'inclusion est vide et que la liste d'exclusion contient une ou plusieurs tables, toutes les tables utilisent le partitionnement automatique à l'exception des tables répertoriées dans la liste d'exclusion. Si les deux listes contiennent une ou plusieurs tables, toutes les tables utilisent le partitionnement automatique, à l'exception des tables répertoriées dans la liste d'exclusion. Si une table ne figure dans aucune des listes, les listes d'inclusion et d'exclusion de schéma déterminent si une table est une table candidate pour le partitionnement automatique. En cas de conflit entre les listes de niveau schéma et les listes de niveau table, les listes de niveau table sont prioritaires.

Pour supprimer toutes les tables des listes d'inclusion et d'exclusion, exécutez la commande suivante :
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTION définit le nombre de jours pendant lesquels les journaux de partitionnement automatique sont conservés dans la base de données avant leur suppression. Impossible de générer un rapport de partitionnement automatique pour une période supérieure à la valeur indiquée pour cette valeur. La valeur par défaut est de 90 jours.

PARAMETER_VALUE

Valeur du paramètre de configuration indiqué dans parameter_name. Lorsqu'elle est définie sur NULL, la valeur par défaut du paramètre de configuration lui est affectée.

ALLOW

Applicable uniquement aux paramètres de configuration AUTO_PARTITION_SCHEMA ou AUTO_PARTITION_TABLE avec l'une des valeurs suivantes :
  • TRUE ajoute le schéma ou la table indiqué à la liste d'inclusion.
  • FALSE enlève le schéma ou la table indiqué de la liste d'exclusion.
  • NULL enlève le schéma ou la table indiqué de la liste à laquelle il est actuellement affecté.
Pour plus d'informations sur les listes d'inclusion et les listes d'exclusion, voir la description des paramètres de configuration AUTO_PARTITION_SCHEMA et AUTO_PARTITION_TABLE.

Notes d'utilisation

  • Vous pouvez vérifier le paramètre actuel pour la configuration du partitionnement automatique à l'aide du code SQL suivant :

    SELECT * FROM DBA_AUTO_PARTITION_CONFIG;
  • Contrairement à l'indexation automatique, le partitionnement automatique ne s'exécute pas régulièrement en arrière-plan. Le partitionnement automatique s'exécute uniquement lorsque vous l'appelez à l'aide de la fonction DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Fonction VALIDATE_CANDIDATE_TABLE

Cette fonction vérifie si la table indiquée est un candidat valide pour le partitionnement automatique dans Autonomous Database.

Candidat valide

Pour être un candidat valide, les tests suivants doivent réussir :
  • La table transmet les tests d'inclusion et d'exclusion spécifiés par les paramètres de configuration AUTO_PARTITION_SCHEMA et AUTO_PARTITION_TABLE.
  • La table existe et contient des statistiques à jour.
  • La table est d'au moins 64 Go.
  • La table contient au moins 5 requêtes dans l'ensemble de réglages SQL qui ont analysé la table.
  • La table ne contient pas de colonne de type de données LONG.
  • La table n'est pas partitionnée manuellement.
  • La table n'est pas une table externe, une table hybride interne/externe, une table temporaire, une table organisée en index ou une table clusterisée.
  • La table n'a pas d'index de domaine ou d'index de jointure bitmap.
  • La table n'est pas une table de mise en file d'attente avancée, de vue matérialisée ou de stockage Flashback Archive.
  • La table n'a pas de tables imbriquées ou certaines autres fonctionnalités d'objet.
Renvoie :
  • VALID si la table est un candidat valide pour le partitionnement autonome
  • INVALID: <reason> si la table n'est pas un candidat valide pour le partitionnement autonome, et <reason> est une chaîne décrivant pourquoi la table n'est pas un candidat valide.

Syntaxe

DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
    ( SQLSET_OWNER  IN VARCHAR2   DEFAULT 'SYS',
      SQLSET_NAME   IN VARCHAR2   DEFAULT 'SYS_AUTO_STS',
      TABLE_OWNER   IN VARCHAR2,
      TABLE_NAME    IN VARCHAR2)
RETURN VARCHAR2;

Paramètres

Paramètre Description

SQLSET_OWNER, SQLSET_NAME

Nom de l'ensemble de réglages SQL représentant la charge globale à évaluer.

TABLE_OWNER, TABLE_NAME

Nom d'une table à valider en tant que candidat au partitionnement automatique.

Notes d'utilisation

  • Par exemple, vous pouvez vérifier la validité d'un exemple de table, LINEORDER dans le schéma TEST, avec l'instruction SQL suivante :
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
        ( TABLE_OWNER => 'TEST',
          TABLE_NAME  => 'LINEORDER')
    FROM DUAL;
    

Fonction RECOMMEND_PARTITION_METHOD

Cette fonction renvoie un ID de recommandation qui peut être utilisé avec la procédure APPLY_RECOMMENDATION pour appliquer la recommandation, ou peut être utilisé avec la vue DBA_AUTO_PARTITION_RECOMMENDATIONS pour extraire les détails des recommandations pour le partitionnement automatique dans Autonomous Database.

Syntaxe

DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD
    ( SQLSET_OWNER     IN VARCHAR2   DEFAULT 'SYS',
      SQLSET_NAME      IN VARCHAR2   DEFAULT 'SYS_AUTO_STS',
      TABLE_OWNER      IN VARCHAR2   DEFAULT NULL,
      TABLE_NAME       IN VARCHAR2   DEFAULT NULL,
      TIME_LIMIT       IN INTERVAL DAY TO SECOND DEFAULT INTERVAL '1' DAY,
      REPORT_TYPE      IN VARCHAR2   DEFAULT 'TEXT',   
      REPORT_SECTION   IN VARCHAR2   DEFAULT 'SUMMARY',
      REPORT_LEVEL     IN VARCHAR2   DEFAULT 'TYPICAL')
  RETURN RAW;

Paramètres

Paramètre Description

SQLSET_OWNER, SQLSET_NAME

Nom de l'ensemble de réglages SQL représentant la charge globale à évaluer.

TABLE_OWNER, TABLE_NAME

Nom d'une table à valider en tant que candidat au partitionnement automatique.

TIME_LIMIT

Lorsque la fonction choisit les tables pour lesquelles générer des recommandations, TABLE_OWNER et TABLE_NAME sont NULL, le paramètre limite la durée d'exécution de la fonction avant qu'elle ne cesse de rechercher de nouvelles tables candidates à partitionner. Une fois que vous avez commencé à traiter une table, le processus ne s'arrête pas. La fonction devrait s'exécuter plus longtemps que ce paramètre. Si ce paramètre est NULL, il n'y a pas de limite de temps. Valeur par défaut : 1 jour.

REPORT_TYPE

Permet de générer un rapport pour la méthode de partition recommandée. Pour plus d'informations, reportez-vous à Fonction REPORT_ACTIVITY.

REPORT_SECTION

Permet de générer un rapport persistant pour la méthode de partition recommandée. Pour plus d'informations, reportez-vous à Fonction REPORT_ACTIVITY.

REPORT_LEVEL

Permet de générer un rapport pour la méthode de partition recommandée. Pour plus d'informations, reportez-vous à Fonction REPORT_ACTIVITY.

Notes d'utilisation

  • AUTO_PARTITION_MODE contrôle les actions effectuées par cette fonction :
    • IMPLEMENT : dans ce mode, le partitionnement automatique génère un rapport et modifie la table existante à l'aide de la méthode de partition recommandée.
    • REPORT ONLY : dans ce mode, le partitionnement automatique génère un rapport généré mais les tables existantes ne sont pas modifiées. Il s'agit de la valeur par défaut.
    • OFF : dans ce mode, le partitionnement automatique a empêché la production, la prise en compte ou l'application de nouvelles recommandations. Elle ne désactive pas les tables partitionnées automatiques existantes.
  • Contrairement à l'indexation automatique, le partitionnement automatique ne s'exécute pas régulièrement en arrière-plan. Le partitionnement automatique s'exécute uniquement lorsque vous l'appelez à l'aide de la fonction DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Valeurs renvoyées

Cette fonction renvoie un ID de recommandation qui peut être utilisé comme suit : DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION pour appliquer la recommandation,

  • Utilisez avec DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION pour appliquer la recommandation.
  • A utiliser avec la vue DBA_AUTO_PARTITION_RECOMMENDATIONS pour extraire les détails des recommandations. Par exemple :
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

Procédure APPLY_RECOMMENDATION

Cette procédure applique la recommandation indiquée dans une instance Autonomous Database.

Syntaxe

DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION
    ( RECOMMENDATION_ID  IN RAW,
      TABLE_OWNER        IN VARCHAR2   DEFAULT NULL,
      TABLE_NAME         IN VARCHAR2   DEFAULT NULL);

Paramètres

Paramètre Description

RECOMMENDATION_ID

ID recommandation renvoyé par la fonction RECOMMEND_PARTITION_METHOD ou interrogé à partir de la vue DBA_AUTO_PARTITION_RECOMMENDATIONS.

TABLE_OWNER, TABLE_NAME

Lorsqu'un seul ID de recommandation contient des recommandations pour plusieurs tables, ce paramètre facultatif vous permet de contrôler quelles tables sont partitionnées.
  • Si les paramètres sont NULL, partitionnez toutes les tables recommandées dans l'ID de recommandation indiqué.
  • Si un nom de table est indiqué, partitionnez uniquement la table nommée.
  • Si TABLE_OWNER ou TABLE_NAME est NOT NULL, ils doivent tous deux être NOT NULL.

Remarque sur l'utilisation :

Quelle que soit AUTO_PARTITION_MODE, cette procédure génère une valeur ORA-20000: recommendation_id was not found si aucune recommandation acceptée n'est associée à la valeur RECOMMENDATION_ID ou si toutes les recommandations acceptées associées à la valeur RECOMMENDATION_ID ont déjà été appliquées. Le premier cas s'applique si RECOMMENDATION_ID a été généré avec AUTO_PARTITION_MODE = OFF. Le second cas s'applique si RECOMMENDATION_ID a été généré avec AUTO_PARTITION_MODE = IMPLEMENT.

Fonction REPORT_ACTIVITY

Cette fonction renvoie un rapport des opérations de partitionnement automatique exécutées au cours d'une période spécifique dans une instance Autonomous Database.

Syntaxe

DBMS_AUTO_PARTITION.REPORT_ACTIVITY
    ( ACTIVITY_START     IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
      ACTIVITY_END       IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
      TYPE               IN VARCHAR2                 DEFAULT 'TEXT',
      SECTION            IN VARCHAR2                 DEFAULT 'ALL',
      LEVEL              IN VARCHAR2                 DEFAULT 'TYPICAL')
RETURN CLOB;

Paramètres

Paramètre Description

ACTIVITY_START

Les opérations de partitionnement automatique à l'heure de début sont utilisées pour l'état. Si aucune valeur n'est indiquée ou si NULL est spécifié, le rapport est généré pour la dernière opération de partitionnement automatique exécutée.

ACTIVITY_END

Fin des opérations de partitionnement automatique utilisées pour l'état. Si aucune valeur n'est indiquée ou si NULL est spécifié, le rapport est généré pour la dernière opération de partitionnement automatique exécutée.

TYPE

Format de l'état comportant l'une des valeurs suivantes :
  • TEXT (par défaut)
  • HTML
  • XML

SECTION

Sections à inclure dans le rapport avec l'une des valeurs suivantes :
  • SUMMARY : inclut uniquement le récapitulatif de la charge globale dans l'état
  • ALL = inclure toutes les sections dans le rapport. (valeur par défaut)

level

Niveau d'informations à inclure dans l'état avec l'une des valeurs suivantes :
  • TYPICAL : inclut les informations de partitionnement automatique standard dans le rapport (par défaut).
  • CHANGED : inclut uniquement les instructions SQL dont les performances ont changé dans l'état.
  • IMPROVED : inclut uniquement les instructions SQL dont les performances sont améliorées dans le rapport.
  • REGRESSED : inclut uniquement les instructions SQL dont les performances ont régressé dans l'état.
  • UNCHANGED : inclut uniquement les instructions SQL dont les performances sont inchangées dans le rapport.
  • ALL : inclut toutes les informations de partitionnement automatique dans le rapport.

Notes d'utilisation

Renvoie un état d'analyse des performances pour la charge globale exécutée sur la base de données après application de la recommandation. Ce rapport n'est pas stocké en permanence avec la recommandation.

Fonction REPORT_LAST_ACTIVITY

Cette fonction renvoie un rapport sur l'opération de partitionnement automatique la plus récente exécutée dans une instance Autonomous Database.

Syntaxe

DBMS_AUTO_PARTITION.REPORT_LAST_ACTIVITY
    ( TYPE    IN VARCHAR2 DEFAULT 'TEXT',
      SECTION IN VARCHAR2 DEFAULT 'ALL',
      LEVEL   IN VARCHAR2 DEFAULT 'TYPICAL')
RETURN CLOB;

Paramètres

Paramètre Description

TYPE

Format de sortie du rapport. Pour plus d'informations, reportez-vous à la section REPORT_ACTIVITY Function.

SECTION

Pour plus d'informations sur les sections incluses dans le rapport, reportez-vous à la section REPORT_ACTIVITY Function.

LEVEL

Niveau d'informations inclus dans le rapport. Pour plus d'informations, reportez-vous à Fonction REPORT_ACTIVITY.

Notes d'utilisation

Renvoie un état d'analyse des performances pour la charge globale exécutée sur la base de données après l'application de la dernière recommandation. Ce rapport n'est pas stocké en permanence avec la recommandation.