Paquete DBMS_AUTO_PARTITION

El paquete DBMS_AUTO_PARTITION proporciona rutinas administrativas para gestionar la partición automática de esquemas y tablas.

Procedimiento CONFIGURE

Este procedimiento configura los valores para la partición automática en Autonomous Database.

Sintaxis

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

Parámetros

Parámetro Descripción

PARAMETER_NAME

Nombre del parámetro de configuración de partición automática para actualizar. Puede tener uno de los siguientes valores:

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODE define el modo de la operación de partición automática y tiene uno de los siguientes valores:
  • IMPLEMENT: en este modo, la partición automática genera un informe y modifica la tabla existente mediante el método de partición recomendado.
  • REPORT ONLY: en este modo, la partición automática genera un informe, pero las tablas existentes no se modifican. Éste es el valor por defecto.
  • OFF: en este modo, se impide que la partición automática genere, considere o aplique recomendaciones. No desactiva las tablas particionadas automáticas existentes.
AUTO_PARTITION_SCHEMA define los esquemas que se van a incluir o excluir del uso de la partición automática. Su comportamiento está controlado por el parámetro allow. El proceso de partición automática gestiona dos listas de esquemas.
  1. La lista de inclusión es la lista de esquemas, sensibles a mayúsculas/minúsculas, que pueden utilizar la partición automática.
  2. La lista de exclusión es la lista de esquemas, sensibles a mayúsculas/minúsculas, que no pueden utilizar la partición automática.

Inicialmente, ambas listas están vacías y todos los esquemas de la base de datos pueden utilizar la partición automática. Si la lista de inclusión contiene uno o más esquemas, solo los esquemas que aparecen en la lista de inclusión pueden utilizar la partición automática. Si la lista de inclusión está vacía y la lista de exclusión contiene uno o más esquemas, todos los esquemas utilizan la partición automática, excepto los esquemas que aparecen en la lista de exclusión. Si ambas listas contienen uno o más esquemas, todos los esquemas utilizan la partición automática, excepto los esquemas que aparecen en la lista de exclusión. AUTO_PARTITION_TABLE define las tablas para incluir o excluir del uso de la partición automática. El valor del parámetro es <schema_name>.<table_name>. El proceso de partición automática gestiona dos listas de tablas.

  1. La lista de inclusión es la lista de tablas, sensibles a mayúsculas/minúsculas, que pueden utilizar la partición automática.
  2. La lista de exclusión es la lista de tablas, sensibles a mayúsculas/minúsculas, que no pueden utilizar la partición automática.

Inicialmente, ambas listas están vacías y todas las tablas de la base de datos pueden utilizar la partición automática. Si la lista de inclusión contiene una o más tablas, solo las tablas que aparecen en la lista de inclusión pueden utilizar la partición automática. Si la lista de inclusión está vacía y la lista de exclusión contiene una o más tablas, todas las tablas utilizan la partición automática, excepto las tablas que aparecen en la lista de exclusión. Si ambas listas contienen una o más tablas, todas las tablas utilizan la partición automática, excepto las tablas que aparecen en la lista de exclusión. Si una tabla no está en ninguna de las listas, las listas de inclusión y exclusión del esquema deciden si una tabla es una tabla candidata para la partición automática. Si hay un conflicto entre las listas de nivel de esquema y las listas de nivel de tabla, las listas de nivel de tabla tienen prioridad.

Para eliminar todas las tablas de las listas de inclusión y exclusión, ejecute:
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTION define el número de días durante los que se retienen los logs de partición automática en la base de datos antes de que se supriman. No se puede generar un informe de partición automática para un período posterior al valor especificado para este valor. El valor predeterminado es de 90 días.

PARAMETER_VALUE

Valor para el valor de configuración especificado en parameter_name. Cuando se define en NULL, al valor de configuración se le asigna su valor por defecto.

ALLOW

Solo se aplica a los valores de configuración AUTO_PARTITION_SCHEMA o AUTO_PARTITION_TABLE con uno de los siguientes valores:
  • TRUE agrega el esquema o la tabla especificados a la lista de inclusión.
  • FALSE elimina el esquema o la tabla especificados de la lista de exclusión.
  • NULL elimina el esquema o la tabla especificados de la lista a la que están asignados actualmente.
Consulte la descripción de los valores de configuración AUTO_PARTITION_SCHEMA y AUTO_PARTITION_TABLE para obtener más información sobre las listas de inclusión y las listas de exclusión.

Notas de uso

  • Puede comprobar el valor actual de la configuración de partición automática mediante el siguiente SQL:

    SELECT * FROM DBA_AUTO_PARTITION_CONFIG;
  • A diferencia de la indexación automática, la partición automática no se ejecuta periódicamente como tarea en segundo plano. La partición automática solo se ejecuta cuando la llama mediante la función DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Función VALIDATE_CANDIDATE_TABLE

Esta función comprueba si la tabla proporcionada es un candidato válido para la partición automática en Autonomous Database.

Candidato válido

Para ser un candidato válido, deben pasar las siguientes pruebas:
  • La tabla transfiere las pruebas de inclusión y exclusión especificadas por los parámetros de configuración AUTO_PARTITION_SCHEMA y AUTO_PARTITION_TABLE.
  • La tabla existe y tiene estadísticas actualizadas.
  • La tabla es de al menos 64 GB.
  • La tabla tiene 5 o más consultas en el juego de ajustes SQL que han explorado la tabla.
  • La tabla no contiene una columna de tipo de dato LONG.
  • La tabla no se particiona manualmente.
  • La tabla no es una tabla externa, una tabla híbrida interna/externa, una tabla temporal, una tabla organizada por índices o una tabla agrupada.
  • La tabla no tiene un índice de dominio ni un índice de unión de bitmap.
  • La tabla no es una tabla de almacenamiento en cola, vista materializada o flashback de archivo.
  • La tabla no tiene tablas anidadas ni otras funciones de objeto determinadas.
Devoluciones:
  • VALID si la tabla es un candidato válido para la partición autónoma
  • INVALID: <reason> si la tabla no es un candidato válido para la partición autónoma y <reason> es una cadena que describe por qué la tabla no es un candidato válido.

Sintaxis

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;

Parámetros

Parámetro Descripción

SQLSET_OWNER, SQLSET_NAME

Nombre del juego de ajustes SQL que representa la carga de trabajo que se va a evaluar.

TABLE_OWNER, TABLE_NAME

Nombre de una tabla que se va a validar como candidato para la partición automática.

Notas de uso

  • Por ejemplo, puede comprobar la validez de una tabla de ejemplo, LINEORDER en el esquema TEST, con el siguiente SQL:
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
        ( TABLE_OWNER => 'TEST',
          TABLE_NAME  => 'LINEORDER')
    FROM DUAL;
    

Función RECOMMEND_PARTITION_METHOD

Esta función devuelve un identificador de recomendación que se puede utilizar con el procedimiento APPLY_RECOMMENDATION para aplicar la recomendación o se puede utilizar con la vista DBA_AUTO_PARTITION_RECOMMENDATIONS para recuperar detalles de las recomendaciones para la partición automática en Autonomous Database.

Sintaxis

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;

Parámetros

Parámetro Descripción

SQLSET_OWNER, SQLSET_NAME

Nombre del juego de ajustes SQL que representa la carga de trabajo que se va a evaluar.

TABLE_OWNER, TABLE_NAME

Nombre de una tabla que se va a validar como candidato para la partición automática.

TIME_LIMIT

Cuando la función selecciona las tablas para las que se generan recomendaciones, TABLE_OWNER y TABLE_NAME son NULL), el parámetro limita el tiempo que se ejecuta la función antes de que deje de buscar nuevas tablas candidatas para particionar. Una vez iniciado el procesamiento de una tabla, el proceso no finalizará. Se espera que la función se ejecute más tiempo que este parámetro. Si este parámetro es NULL, no hay límite de tiempo. El valor por defecto es 1 día.

REPORT_TYPE

Se utiliza para generar un informe para el método de partición recomendado. Consulte REPORT_ACTIVITY Function para obtener detalles.

REPORT_SECTION

Se utiliza para generar un informe persistente para el método de partición recomendado. Consulte REPORT_ACTIVITY Function para obtener detalles.

REPORT_LEVEL

Se utiliza para generar un informe para el método de partición recomendado. Consulte REPORT_ACTIVITY Function para obtener detalles.

Notas de uso

  • AUTO_PARTITION_MODE controla las acciones realizadas por esta función:
    • IMPLEMENT: en este modo, la partición automática genera un informe y modifica la tabla existente mediante el método de partición recomendado.
    • REPORT ONLY: en este modo, la partición automática genera un informe generado pero las tablas existentes no se modifican. Éste es el valor por defecto.
    • OFF: en este modo, la partición automática no ha podido producir, considerar ni aplicar nuevas recomendaciones. No desactiva las tablas particionadas automáticas existentes.
  • A diferencia de la indexación automática, la partición automática no se ejecuta periódicamente como tarea en segundo plano. La partición automática solo se ejecuta cuando la llama mediante la función DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Valores de Retorno

Esta función devuelve un ID de recomendación que se puede utilizar de la siguiente forma: DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION para aplicar la recomendación,

  • Se utiliza con DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION para aplicar la recomendación.
  • Se utiliza con la vista DBA_AUTO_PARTITION_RECOMMENDATIONS para recuperar los detalles de las recomendaciones. Por ejemplo:
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

APPLY_RECOMMENDATION Procedimiento

Este procedimiento aplica la recomendación proporcionada en una instancia de Autonomous Database.

Sintaxis

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

Parámetros

Parámetro Descripción

RECOMMENDATION_ID

ID de recomendación devuelto desde la función RECOMMEND_PARTITION_METHOD o consultado desde la vista DBA_AUTO_PARTITION_RECOMMENDATIONS.

TABLE_OWNER, TABLE_NAME

Cuando un único ID de recomendación tiene recomendaciones para varias tablas, este parámetro opcional permite controlar qué tablas están particionadas.
  • Si los parámetros son NULL, particione todas las tablas recomendadas en el ID de recomendación proporcionado.
  • Si se proporciona un nombre de tabla, particione solo la tabla con nombre.
  • Si TABLE_OWNER o TABLE_NAME es NOT NULL, ambos deben ser NOT NULL.

Nota de uso:

Independientemente de AUTO_PARTITION_MODE, este procedimiento genera un ORA-20000: recommendation_id was not found si no hay recomendaciones aceptadas asociadas con RECOMMENDATION_ID o si ya se han aplicado todas las recomendaciones aceptadas asociadas con RECOMMENDATION_ID. El primer caso se aplica si se ha generado RECOMMENDATION_ID con AUTO_PARTITION_MODE = OFF. El segundo caso se aplica si se ha generado RECOMMENDATION_ID con AUTO_PARTITION_MODE = IMPLEMENT.

Función REPORT_ACTIVITY

Esta función devuelve un informe de las operaciones de partición automática ejecutadas durante un período específico en una instancia de Autonomous Database.

Sintaxis

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;

Parámetros

Parámetro Descripción

ACTIVITY_START

Uso de operaciones de partición automática de hora de inicio para el informe. Si no se especifica ningún valor o se especifica NULL, el informe se genera para la última operación de partición automática que se ha ejecutado.

ACTIVITY_END

Las operaciones de partición automática de tiempo de finalización se utilizan para el informe. Si no se especifica ningún valor o se especifica NULL, el informe se genera para la última operación de partición automática que se ha ejecutado.

TYPE

Formato del informe que tiene uno de los siguientes valores:
  • TEXT (por defecto)
  • HTML
  • XML

SECTION

Secciones que se deben incluir en el informe que tiene uno de los siguientes valores:
  • SUMMARY: incluir solo el resumen de carga de trabajo en el informe
  • ALL = Incluir todas las secciones en el informe. (valor por defecto)

level

Nivel de información que se debe incluir en el informe que tiene uno de los siguientes valores:
  • TYPICAL: incluye la información típica de partición automática en el informe (por defecto).
  • CHANGED: incluye solo SQL con rendimiento cambiado en el informe.
  • IMPROVED: incluye solo SQL con un rendimiento mejorado en el informe.
  • REGRESSED: incluye solo SQL con un rendimiento empeorado en el informe.
  • UNCHANGED: incluye solo SQL con un rendimiento sin cambios en el informe.
  • ALL: incluye toda la información de partición automática en el informe.

Notas de uso

Devuelve: un informe de análisis de rendimiento para la carga de trabajo ejecutada en la base de datos después de aplicar la recomendación. Este informe no se almacena de forma persistente con la recomendación.

Función REPORT_LAST_ACTIVITY

Esta función devuelve un informe de la operación de partición automática más reciente ejecutada en una instancia de Autonomous Database.

Sintaxis

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

Parámetros

Parámetro Descripción

TYPE

El formato de salida del informe, consulte REPORT_ACTIVITY Function para obtener información.

SECTION

Las secciones incluidas en el informe, consulte REPORT_ACTIVITY Function para obtener información.

LEVEL

El nivel de información incluido en el informe, consulte REPORT_ACTIVITY Function para obtener información.

Notas de uso

Devoluciones: informe de análisis de rendimiento para la carga de trabajo ejecutada en la base de datos después de aplicar la última recomendación. Este informe no se almacena de forma persistente con la recomendación.