Pacote DBMS_AUTO_PARTITION

O pacote DBMS_AUTO_PARTITION fornece rotinas administrativas para gerenciar o particionamento automático de esquemas e tabelas.

Procedimento CONFIGURE

Este procedimento configura definições para particionamento automático no Autonomous Database.

Sintaxe

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

Parâmetros

Parâmetro Descrição

PARAMETER_NAME

Nome do parâmetro de configuração de particionamento automático a ser atualizado. Ele pode ter um dos seguintes valores:

  • AUTO_PARTITION_MODE
  • AUTO_PARTITION_SCHEMA
  • AUTO_PARTITION_TABLE
  • AUTO_PARTITION_REPORT_RETENTION
AUTO_PARTITION_MODE define o modo de operação de particionamento automático e tem um dos seguintes valores:
  • IMPLEMENT: Neste modo, o particionamento automático gera um relatório e modifica a tabela existente usando o método de partição recomendado.
  • REPORT ONLY: Neste modo, o particionamento automático gera um relatório, mas as tabelas existentes não são modificadas. Esse é o valor padrão.
  • OFF: Neste modo, o particionamento automático é impedido de gerar, considerar ou aplicar recomendações. Não desativa as tabelas particionadas automáticas existentes.
AUTO_PARTITION_SCHEMA define esquemas para incluir ou excluir do uso do particionamento automático. Seu comportamento é controlado pelo parâmetro allow. O processo de particionamento automático gerencia duas listas de esquemas.
  1. A lista de inclusão é a lista de esquemas, com distinção entre maiúsculas e minúsculas, que podem usar o particionamento automático.
  2. A lista de exclusão é a lista de esquemas, com distinção entre maiúsculas e minúsculas, que não podem usar o particionamento automático.

Inicialmente, ambas as listas estão vazias e todos os esquemas do banco de dados podem usar o particionamento automático. Se a lista de inclusão contiver um ou mais esquemas, somente os esquemas listados na lista de inclusão poderão usar o particionamento automático. Se a lista de inclusão estiver vazia e a lista de exclusão contiver um ou mais esquemas, todos os esquemas usarão o particionamento automático, exceto os esquemas listados na lista de exclusão. Se ambas as listas contiverem um ou mais esquemas, todos eles usarão o particionamento automático, exceto os esquemas listados na lista de exclusão. AUTO_PARTITION_TABLE define tabelas para incluir ou excluir do uso do particionamento automático. O valor do parâmetro é <schema_name>.<table_name>. O processo de particionamento automático gerencia duas listas de tabelas.

  1. A lista de inclusão é a lista de tabelas, com distinção entre maiúsculas e minúsculas, que podem usar particionamento automático.
  2. A lista de exclusão é a lista de tabelas, com distinção entre maiúsculas e minúsculas, que não podem usar o particionamento automático.

Inicialmente, ambas as listas estão vazias e todas as tabelas do banco de dados podem usar o particionamento automático. Se a lista de inclusão contiver uma ou mais tabelas, somente as tabelas listadas na lista de inclusão poderão usar o particionamento automático. Se a lista de inclusão estiver vazia e a lista de exclusão contiver uma ou mais tabelas, todas usarão o particionamento automático, exceto as tabelas listadas na lista de exclusão. Se ambas as listas contiverem uma ou mais tabelas, todas elas usarão o particionamento automático, exceto as tabelas listadas na lista de exclusão. Se uma tabela não estiver em nenhuma das listas, as listas de inclusão e exclusão do esquema decidirão se uma tabela é candidata para particionamento automático. Se houver um conflito entre as listas de nível de esquema e as listas de nível de tabela, as listas de nível de tabela terão precedência.

Para remover todas as tabelas da execução das listas de inclusão e exclusão:
DBMS_AUTO_PARTITION.CONFIGURE('AUTO_PARTITION_TABLE', NULL);

AUTO_PARTITION_REPORT_RETENTION define o número de dias durante os quais os logs de particionamento automático são retidos no banco de dados antes de serem excluídos. Não é possível gerar um relatório de particionamento automático para um período além do valor especificado para esse valor. O valor default é 90 dias.

PARAMETER_VALUE

Valor para a definição de configuração especificada em parameter_name. Quando definida como NULL, a definição de configuração recebe seu valor padrão.

ALLOW

Aplicável somente para as definições de configuração AUTO_PARTITION_SCHEMA ou AUTO_PARTITION_TABLE com um dos seguintes valores:
  • TRUE adiciona esquema ou tabela especificados à lista de inclusão.
  • FALSE remove o esquema ou a tabela especificada da lista de exclusão.
  • NULL remove o esquema ou a tabela especificada da lista à qual está designado no momento.
Para obter mais informações sobre listas de inclusão e listas de exclusão, consulte a descrição das definições de configuração AUTO_PARTITION_SCHEMA e AUTO_PARTITION_TABLE.

Observações de Uso

  • Você pode verificar a configuração atual para configuração de particionamento automático usando o seguinte SQL:

    SELECT * FROM DBA_AUTO_PARTITION_CONFIG;
  • Ao contrário da indexação automática, o particionamento automático não é executado periodicamente como uma tarefa em segundo plano. O particionamento automático só é executado quando você o chama usando a função DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Função VALIDATE_CANDIDATE_TABLE

Essa função verifica se a tabela fornecida é válida para o particionamento automático no Autonomous Database.

Candidato Válido

Para ser um candidato válido, os seguintes testes devem ser aprovados:
  • A tabela passa nos testes de inclusão e exclusão especificados pelos parâmetros de configuração AUTO_PARTITION_SCHEMA e AUTO_PARTITION_TABLE.
  • A tabela existe e tem estatísticas atualizadas.
  • A tabela tem pelo menos 64 GB.
  • A tabela tem 5 ou mais consultas no SQL Tuning Set que verificaram a tabela.
  • A tabela não contém uma coluna de tipo de dados LONG.
  • A tabela não é particionada manualmente.
  • Tabela não é uma tabela externa, uma tabela híbrida interna/externa, uma tabela temporária, uma tabela organizada por índice ou uma tabela agrupada.
  • A tabela não tem um índice de domínio ou um índice de junção de bitmap.
  • A tabela não é uma fila avançada, uma view materializada ou uma tabela de armazenamento de arquivos compactados de flashback.
  • A tabela não tem tabelas aninhadas ou determinados outros recursos de objeto.
Retorna:
  • VALID se a tabela for uma candidata válida para particionamento autônomo
  • INVALID: <reason> se a tabela não for válida para particionamento autônomo, e <reason> for uma string que descreve por que a tabela não é válida.

Sintaxe

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 Descrição

SQLSET_OWNER, SQLSET_NAME

Nome do SQL Tuning Set que representa a carga de trabalho a ser avaliada.

TABLE_OWNER, TABLE_NAME

Nome de uma tabela a ser validada como candidata ao particionamento automático.

Observações de Uso

  • Como exemplo, você pode verificar a validade de uma tabela de amostra, LINEORDER no esquema TEST, com a seguinte SQL:
    SELECT DBMS_AUTO_PARTITION.VALIDATE_CANDIDATE_TABLE
        ( TABLE_OWNER => 'TEST',
          TABLE_NAME  => 'LINEORDER')
    FROM DUAL;
    

Função RECOMMEND_PARTITION_METHOD

Essa função retorna um ID de recomendação que pode ser usado com o procedimento APPLY_RECOMMENDATION para aplicar a recomendação ou pode ser usado com a view DBA_AUTO_PARTITION_RECOMMENDATIONS para recuperar detalhes das recomendações para particionamento automático no Autonomous Database.

Sintaxe

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 Descrição

SQLSET_OWNER, SQLSET_NAME

Nome do SQL Tuning Set que representa a carga de trabalho a ser avaliada.

TABLE_OWNER, TABLE_NAME

Nome de uma tabela a ser validada como candidata ao particionamento automático.

TIME_LIMIT

Quando a função escolhe as tabelas para as quais gerar recomendações, TABLE_OWNER e TABLE_NAME são NULL), o parâmetro limita quanto tempo a função é executada antes de parar de procurar novas tabelas candidatas para particionar. Uma vez iniciado o processamento de uma tabela, o processo não será encerrado. Espera-se que a função possa ser executada por mais tempo que este parâmetro. Se esse parâmetro for NULL, não haverá limite de tempo. O valor default é de 1 dia.

REPORT_TYPE

Usado para gerar relatório para o método de partição recomendado. Consulte Função REPORT_ACTIVITY para obter detalhes.

REPORT_SECTION

Usado para gerar relatório persistente para o método de partição recomendado. Consulte Função REPORT_ACTIVITY para obter detalhes.

REPORT_LEVEL

Usado para gerar relatório para o método de partição recomendado. Consulte Função REPORT_ACTIVITY para obter detalhes.

Observações de Uso

  • O AUTO_PARTITION_MODE controla as ações executadas por esta função:
    • IMPLEMENT: Neste modo, o particionamento automático gera um relatório e modifica a tabela existente usando o método de partição recomendado.
    • REPORT ONLY: Neste modo, o particionamento automático gera um relatório gerado, mas as tabelas existentes não são modificadas. Esse é o valor padrão.
    • OFF: Neste modo, o particionamento automático impediu a produção, a consideração ou a aplicação de novas recomendações. Não desativa as tabelas particionadas automáticas existentes.
  • Ao contrário da indexação automática, o particionamento automático não é executado periodicamente como uma tarefa em segundo plano. O particionamento automático só é executado quando você o chama usando a função DBMS_AUTO_PARTITION.RECOMMEND_PARTITION_METHOD.

Valores de Retorno

Esta função retorna um ID de recomendação que pode ser usado da seguinte forma: DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION para aplicar a recomendação,

  • Use com DBMS_AUTO_PARTITION.APPLY_RECOMMENDATION para aplicar a recomendação.
  • Use com a view DBA_AUTO_PARTITION_RECOMMENDATIONS para recuperar detalhes das recomendações. Por exemplo:
    SELECT PARTITION_METHOD, PARTITION_KEY
         FROM DBA_AUTO_PARTITION_RECOMMENDATIONS
         WHERE RECOMMENDATION_ID = :RECOMMENDATION_ID;

APPLY_RECOMMENDATION Procedimento

Este procedimento aplica a recomendação fornecida em um Autonomous Database.

Sintaxe

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 Descrição

RECOMMENDATION_ID

ID da Recomendação retornado da função RECOMMEND_PARTITION_METHOD ou consultado na exibição DBA_AUTO_PARTITION_RECOMMENDATIONS.

TABLE_OWNER, TABLE_NAME

Quando um único ID de recomendação tem recomendações para várias tabelas, esse parâmetro opcional permite controlar quais tabelas são particionadas.
  • Se os parâmetros forem NULL, particione todas as tabelas recomendadas no ID de recomendação fornecido.
  • Se um nome de tabela for fornecido, particione apenas a tabela nomeada.
  • Se TABLE_OWNER ou TABLE_NAME for NOT NULL, ambos deverão ser NOT NULL.

Observação do Uso:

Independentemente do AUTO_PARTITION_MODE, este procedimento gera um ORA-20000: recommendation_id was not found se não houver recomendações aceitas associadas ao RECOMMENDATION_ID ou se todas as recomendações aceitas associadas ao RECOMMENDATION_ID já tiverem sido aplicadas. O primeiro caso será aplicado se RECOMMENDATION_ID tiver sido gerado com AUTO_PARTITION_MODE = OFF. O segundo caso será aplicado se RECOMMENDATION_ID tiver sido gerado com AUTO_PARTITION_MODE = IMPLEMENT.

Função REPORT_ACTIVITY

Essa função retorna um relatório das operações de particionamento automático executadas durante um período específico em um Autonomous Database.

Sintaxe

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 Descrição

ACTIVITY_START

As operações de particionamento automático no horário inicial são usadas para o relatório. Se nenhum valor for especificado ou NULL for especificado, o relatório será gerado para a última operação de particionamento automático executada.

ACTIVITY_END

As operações de particionamento automático no horário final são usadas para o relatório. Se nenhum valor for especificado ou NULL for especificado, o relatório será gerado para a última operação de particionamento automático que foi executada.

TYPE

Formato do relatório que tem um dos seguintes valores:
  • TEXT (padrão)
  • HTML
  • XML

SECTION

Seções a serem incluídas no relatório que tem um dos seguintes valores:
  • SUMMARY - Incluir apenas o resumo da carga de trabalho no relatório
  • ALL = Incluir todas as seções no relatório. (padrão)

level

Nível de informação a ser incluído no relatório que tem um dos seguintes valores:
  • TYPICAL - Inclui informações típicas de particionamento automático no relatório (padrão).
  • CHANGED - Incluir somente SQL com desempenho alterado no relatório.
  • IMPROVED - Inclua somente SQL com desempenho aprimorado no relatório.
  • REGRESSED - Inclua somente SQL com desempenho reduzido no relatório.
  • UNCHANGED - Incluir somente SQL com desempenho inalterado no relatório.
  • ALL - Inclua todas as informações de particionamento automático no relatório.

Observações de Uso

Retornos: Um relatório de análise de desempenho para carga de trabalho executada no banco de dados após a aplicação da recomendação. Este relatório não é armazenado persistentemente com a recomendação.

Função REPORT_LAST_ACTIVITY

Esta função retorna um relatório da operação de particionamento automático mais recente executada em um Autonomous Database.

Sintaxe

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 Descrição

TYPE

O formato de saída do relatório. Consulte a Função REPORT_ACTIVITY para obter informações.

SECTION

As seções incluídas no relatório, consulte a Função REPORT_ACTIVITY para obter informações.

LEVEL

O nível de informações incluídas no relatório. Consulte a Função REPORT_ACTIVITY para obter informações.

Observações de Uso

Retornos: Um relatório de análise de desempenho para carga de trabalho executada no banco de dados após a última recomendação ser aplicada. Este relatório não é armazenado persistentemente com a recomendação.