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

Con este procedimiento se configuran los valores de 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 que se va a 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 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, la partición automática no puede generar, considerar ni aplicar 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 se controla mediante 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 mostrados 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 mostrados 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 mostrados en la lista de exclusión. AUTO_PARTITION_TABLE define las tablas para incluirlas o excluirlas 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 lista, las listas de inclusión y exclusión de esquemas 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 superior al valor especificado para este valor. El valor por defecto es de 90 días.

PARAMETER_VALUE

Valor para la opción de configuración especificada en parameter_name. Cuando se define en NULL, a la 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 la configuración actual de la 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 una tarea en segundo plano. La partición automática solo se ejecuta cuando se 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.

Candidata válida

Para ser un candidato válido, deben pasar las siguientes pruebas:
  • La tabla supera 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 tiene al menos 64 GB.
  • La tabla tiene 5 o más consultas en el juego de ajustes SQL que ha explorado la tabla.
  • La tabla no contiene una columna de tipo de datos LONG.
  • La tabla no está particionada 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 en cluster.
  • La tabla no tiene un índice de dominio ni un índice de unión de mapa de bits.
  • La tabla no es una tabla de almacenamiento de archivo de flashback, de cola avanzada o de vista materializada.
  • La tabla no tiene tablas anidadas ni otras funciones de objetos.
Devoluciones:
  • VALID si la tabla es una candidata válida para la partición autónoma
  • INVALID: <reason> si la tabla no es una candidata válida para la partición autónoma y <reason> es una cadena que describe por qué la tabla no es una candidata válida.

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 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 ID 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 validar como candidato para la partición automática.

TIME_LIMIT

Cuando la función selecciona las tablas para las que generar recomendaciones, TABLE_OWNER y TABLE_NAME tienen el valor NULL), el parámetro limita el tiempo que se ejecuta la función antes de que deje de buscar nuevas tablas candidatas para la partición. Una vez iniciado el procesamiento de una tabla, el proceso no terminará. 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 informes para el método de partición recomendado. Consulte Función REPORT_ACTIVITY para obtener más información.

REPORT_SECTION

Se utiliza para generar informes persistentes para el método de partición recomendado. Consulte Función REPORT_ACTIVITY para obtener más información.

REPORT_LEVEL

Se utiliza para generar informes para el método de partición recomendado. Consulte Función REPORT_ACTIVITY para obtener más información.

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 una tarea en segundo plano. La partición automática solo se ejecuta cuando se 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.

  • Úsela con DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION para aplicar la recomendación.
  • Utilice 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;

Procedimiento APPLY_RECOMMENDATION

Con este procedimiento se 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 de 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 se particionan.
  • Si los parámetros son NULL, particiones todas las tablas recomendadas en el ID de recomendación especificado.
  • Si se proporciona un nombre de tabla, particione solo la tabla con nombre.
  • Si el valor de TABLE_OWNER o de TABLE_NAME es NOT NULL, ambos deben ser NOT NULL.

Nota de Uso:

Independientemente de AUTO_PARTITION_MODE, este procedimiento emite un ORA-20000: recommendation_id was not found si no hay recomendaciones aceptadas asociadas a RECOMMENDATION_ID o si ya se han aplicado todas las recomendaciones aceptadas asociadas a 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

Hora de inicio que las operaciones de partición automática usan 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 haya ejecutado.

ACTIVITY_END

Hora de finalización que las operaciones de partición automática usan 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 haya ejecutado.

TYPE

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

SECTION

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

level

Nivel de información que incluir en el informe que tiene uno de los siguientes valores:
  • TYPICAL: incluye 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 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

Formato de salida del informe. Consulte Función REPORT_ACTIVITY para obtener información.

SECTION

Secciones incluidas en el informe. Consulte Función REPORT_ACTIVITY para obtener información.

LEVEL

Nivel de información incluido en el informe. Consulte Función REPORT_ACTIVITY para obtener información.

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 última recomendación. Este informe no se almacena de forma persistente con la recomendación.