Package DBMS_AUTO_PARTITION

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

Procédure CONFIGURE

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. Les valeurs possibles sont les suivantes :

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODE définit le mode de l'opération de partitionnement automatique et a 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 partitionnement 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 de recommandations, en prendre en charge ou en appliquer. Il ne désactive pas les tables partitionnées automatiquement 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 d'autorisation. Le processus de partitionnement automatique gère deux listes de schémas.
  1. La liste d'inclusion est la liste des schémas, avec distinction entre les casse, qui peuvent utiliser le partitionnement automatique.
  2. La liste d'exclusion est la liste des schémas, avec distinction entre les majuscules et les minuscules, 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 des schémas, seuls les schémas répertoriés dans cette liste peuvent utiliser le partitionnement automatique. Si la liste d'inclusion est vide et que la liste d'exclusion contient des 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 des 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'exclusions est la liste des tables, avec distinction entre les cas, 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 des tables, seules les tables répertoriées dans cette liste peuvent utiliser le partitionnement automatique. Si la liste d'inclusion est vide et que la liste d'exclusion contient des 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 des 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émas déterminent si une table est candidate au 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 enlever toutes les tables des listes d'inclusion et d'exclusion, procédez comme suit :
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTION définit le nombre de jours de conservation des journaux de partitionnement automatique dans la base de données avant leur suppression. Il est impossible de générer un rapport de partitionnement automatique pour une période au-delà de la valeur indiquée pour ce paramètre. La valeur par défaut est de 90 jours.

PARAMETER_VALUE

Valeur du paramètre de configuration indiqué dans parameter_name. Lorsqu'il est défini sur NULL, la valeur par défaut de ce 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 indiqué ou la table indiquée à la liste d'inclusion.
  • FALSE : enlève le schéma indiqué ou la table indiquée de la liste d'exclusion.
  • NULL : enlève le schéma indiqué ou la table indiquée de la liste à laquelle elle est affectée.
Pour plus d'informations sur les listes d'inclusion et les listes d'exclusion, reportez-vous à 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 de la configuration du partitionnement automatique à l'aide de l'instruction SQL suivante :

    SELECT * FROM DBA_AUTO_PARTITION_CONFIG;
  • 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.

Fonction VALIDATE_CANDIDATE_TABLE

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

candidat valide

Pour être un candidat valide, les conditions suivantes doivent être remplies :
  • La table réussit les tests d'inclusion et d'exclusion indiqués par les paramètres de configuration AUTO_PARTITION_SCHEMA et AUTO_PARTITION_TABLE.
  • La table existe et contient des statistiques à jour.
  • La taille de la table est d'au moins 64 Go.
  • La table comporte au moins 5 requêtes de l'ensemble de réglages SQL qui l'a analysée.
  • 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 ou externe, une table temporaire, une table organisée en index ou une table incluse dans un cluster.
  • La table ne contient pas d'index de domaine ou d'index de jointure bitmap.
  • La table n'est pas une table de stockage de file d'attente avancée, de vue matérialisée ou d'archive Flashback.
  • La table ne dispose pas de tables imbriquées ou de certaines fonctionnalités d'objet.
Renvoie :
  • VALID si la table est un candidat valide pour le partitionnement automatique.
  • INVALID: <reason> si la table n'est pas un candidat valide pour le partitionnement automatique et que <reason> est une chaîne décrivant la raison pour laquelle 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 de la table à valider en tant que table candidate pour le partitionnement automatique.

Notes d'utilisation

  • Par exemple, vous pouvez vérifier la validité d'un exemple de table, LINEORDER, dans le schéma TEST, à l'aide de 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 afin d'appliquer la recommandation ou avec la vue DBA_AUTO_PARTITION_RECOMMENDATIONS afin d'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 de la table à valider en tant que table candidate pour le partitionnement automatique.

TIME_LIMIT

Lorsque la fonction choisit les tables pour lesquelles générer des recommandations (TABLE_OWNER et TABLE_NAME définis sur NULL), le paramètre limite la durée d'exécution de la fonction jusqu'à ce qu'elle cesse de rechercher de nouvelles tables candidates à partitionner. Une fois que le traitement d'une table commencé, le processus ne prend pas fin. L'exécution de la fonction peut être plus longue que celle de ce paramètre. Si ce paramètre a la valeur NULL, aucune limite de temps n'est définie. Valeur par défaut : 1 jour.

REPORT_TYPE

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

REPORT_SECTION

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

REPORT_LEVEL

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

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 partitionnement 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 produire de nouvelles recommandations, en prendre en charge ou en appliquer. Il ne désactive pas les tables partitionnées automatiquement existantes.
  • 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.

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.

  • A utiliser 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. Exemple :
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

APPLY_RECOMMENDATION Procédure

Cette procédure applique la recommandation donné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 de 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 comporte des recommandations pour plusieurs tables, ce paramètre facultatif vous permet de contrôler le partitionnement des tables.
  • Si les paramètres sont NULL, partitionnez toutes les tables recommandées dans l'ID de recommandation donné.
  • Si un nom de table est indiqué, seule la table nommée est partitionnée.
  • Si TABLE_OWNER ou TABLE_NAME est défini sur NOT NULL, les deux paramètres doivent être définis sur NOT NULL.

Remarque sur l'utilisation :

Indépendamment de AUTO_PARTITION_MODE, cette procédure appelle ORA-20000: recommendation_id was not found si aucune recommandation acceptée n'est associée à RECOMMENDATION_ID ou si toutes les recommandations acceptées associées à 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 deuxième 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 sur 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

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

ACTIVITY_END

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

TYPE

Format du rapport, avec 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 charge globale dans le rapport.
  • ALL : inclut toutes les sections dans le rapport (valeur par défaut).

level

Niveau d'informations à inclure dans le rapport, avec l'une des valeurs suivantes :
  • TYPICAL : inclut dans le rapport des informations de partitionnement automatique standard (valeur par défaut).
  • CHANGED : inclut dans le rapport uniquement les instructions SQL avec des performances modifiées.
  • IMPROVED : n'inclut dans le rapport que les instructions SQL avec des performances améliorées.
  • REGRESSED : n'inclut dans le rapport qu'une instruction SQL avec des performances diminuées.
  • UNCHANGED : n'inclut dans le rapport qu'une instruction SQL avec des performances non modifiées.
  • ALL : inclut dans le rapport toutes les informations de partitionnement automatique.

Notes d'utilisation

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

Fonction REPORT_LAST_ACTIVITY

Cette fonction renvoie un rapport de 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 à Fonction REPORT_ACTIVITY.

SECTION

Sections incluses dans le rapport. Pour plus d'informations, reportez-vous à REPORT_ACTIVITY Function.

LEVEL

Niveau d'informations inclus dans le rapport. Reportez-vous à REPORT_ACTIVITY Fonction pour plus d'informations.

Notes d'utilisation

Renvoie un rapport 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é de manière permanente avec la recommandation.