Pacote DBMS_AUTO_PARTITION

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

Procedimento CONFIGURE

Esse procedimento configura definições de 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 da operação de partição automática e tem um dos seguintes valores:
  • IMPLEMENT: Nesse modo, o particionamento automático gera um relatório e modifica a tabela existente usando o método de partição recomendado.
  • REPORT ONLY: Nesse modo, o particionamento automático gera um relatório, mas as tabelas existentes não são modificadas. Esse é o valor padrão.
  • OFF: Nesse modo, o particionamento automático é impedido de gerar, considerar ou aplicar recomendações. Ele não desativa as tabelas particionadas automáticas existentes.
AUTO_PARTITION_SCHEMA define esquemas para inclusão ou exclusão usando o particionamento automático. Seu comportamento é controlado pelo parâmetro de permissão. O processo de partição automática gerencia duas listas de esquemas.
  1. Lista de inclusão é a lista de esquemas, com distinção entre maiúsculas e minúsculas, que podem usar partição automática.
  2. Lista de exclusão é a lista de esquemas, com distinção entre maiúsculas e minúsculas, que não podem usar particionamento automático.

Inicialmente, as duas listas estão vazias e todos os esquemas do banco de dados podem usar partição automática. 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 eles 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 inclusão ou exclusão usando o particionamento automático. O valor do parâmetro é <schema_name>.<table_name>. O processo de partição automática gerencia duas listas de tabelas.

  1. Lista de inclusão é a lista de tabelas, com distinção entre maiúsculas e minúsculas, que podem usar partição automática.
  2. Lista de exclusões é a lista de tabelas, com distinção entre maiúsculas e minúsculas, que não podem usar partição automática.

Inicialmente, as duas 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, apenas as tabelas listadas na lista de inclusão poderão usar particionamento automático. Se a lista de inclusão estiver vazia e ela contiver uma ou mais tabelas, todas as tabelas usarão o partição 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 partição 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 de esquema decidirão se uma tabela é candidata ao particionamento automático. Se houver um conflito entre as listas de nível de esquema e de nível de tabela, as de tabela terão precedência.

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

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

PARAMETER_VALUE

Valor para a definição especificada em parameter_name. Quando definido 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 um determinado esquema ou tabela à lista de inclusão.
  • FALSE remove um determinado esquema ou tabela da lista de exclusão.
  • NULL remove um determinado esquema ou tabela da lista à qual está designado no momento.
Consulte a descrição das definições de configuração AUTO_PARTITION_SCHEMA e AUTO_PARTITION_TABLE para obter mais informações sobre listas de inclusão e exclusão.

Observações de Uso

  • Você pode verificar a definição atual da 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.

VALIDATE_CANDIDATE_TABLE Função

Essa função verifica se a tabela em questão é um candidato válido para 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 conjunto de ajustes SQL que verificaram a tabela.
  • A tabela não contém uma coluna de tipo de dados LONG.
  • A tabela não é dividida manualmente.
  • A tabela não é externa, nem híbrida interna/externa, nem temporária, nem organizada por índice, nem clusterizada.
  • A tabela não tem um índice de domínio nem de junção de bitmap.
  • A tabela não é de fila avançada, nem de view materializada nem de armazenamento de arquivos compactados flashback.
  • A tabela não tem tabelas aninhadas ou alguns outros recursos de objeto.
Retorna:
  • VALID se a tabela for um candidato válido para partição autônoma
  • 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 conjunto de ajustes SQL que representa a carga de trabalho a ser avaliada.

TABLE_OWNER, TABLE_NAME

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

Observações de Uso

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

RECOMMEND_PARTITION_METHOD Função

Essa função retorna um ID de recomendação que pode ser usado com o procedimento APPLY_RECOMMENDATION para aplicar a recomendação ou com a view DBA_AUTO_PARTITION_RECOMMENDATIONS para recuperar detalhes das recomendações de 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 conjunto de ajustes SQL que representa a carga de trabalho a ser avaliada.

TABLE_OWNER, TABLE_NAME

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

TIME_LIMIT

Quando a função escolhe as tabelas para as quais serão geradas recomendações, TABLE_OWNER e TABLE_NAME são NULL), o parâmetro limita por quanto tempo a função é executada antes de parar de procurar novas tabelas candidatas para partição. 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 do que esse 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 tomadas por esta função:
    • IMPLEMENT: Nesse modo, o particionamento automático gera um relatório e modifica a tabela existente usando o método de partição recomendado.
    • REPORT ONLY: Nesse modo, o particionamento automático gera um relatório, mas as tabelas existentes não são modificadas. Esse é o valor padrão.
    • OFF: Nesse modo, o particionamento automático impediu a produção, consideração ou aplicação de novas recomendações. Ele 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.

Retornar Valores

Essa 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

Esse procedimento aplica a determinada recomendação 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 view 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 divididas.
  • Se os parâmetros forem NULL, particione todas as tabelas recomendadas no ID de recomendação em questão.
  • Se um nome de tabela for informado, particione apenas a tabela nomeada.
  • Se TABLE_OWNER ou TABLE_NAME for NOT NULL, ambos deverão ser NOT NULL.

Observação de Uso:

Independentemente de AUTO_PARTITION_MODE, esse procedimento gera um ORA-20000: recommendation_id was not found quando não há recomendações aceitas associadas a RECOMMENDATION_ID ou quando todas as recomendações aceitas associadas a RECOMMENDATION_ID já foram aplicadas. O primeiro caso se aplica quando RECOMMENDATION_ID foi gerado com AUTO_PARTITION_MODE = OFF. O segundo caso se aplicará quando RECOMMENDATION_ID foi 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 partição automática com 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 que foi executada.

ACTIVITY_END

As operações de partição automática com 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 - Inclui apenas o resumo da carga de trabalho no relatório
  • ALL = Inclui todas as seções no relatório. (padrão)

level

Nível de informações a ser incluído no relatório que tem um dos seguintes valores:
  • TYPICAL - Inclui informações típicas de partição automática no relatório (padrão).
  • CHANGED - Inclui apenas SQL com desempenho alterado no relatório.
  • IMPROVED - Inclui apenas SQL com melhor desempenho no relatório.
  • REGRESSED - Inclui apenas SQL com desempenho regressado no relatório.
  • UNCHANGED - Inclui apenas SQL com desempenho alterado no relatório.
  • ALL - Inclui todas as informações de partição automática no relatório.

Observações de Uso

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

REPORT_LAST_ACTIVITY Função

Essa 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 Função REPORT_ACTIVITY para obter informações.

SECTION

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

LEVEL

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

Observações de Uso

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