Limpador de tabela

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • O limpador de tabela exclui registros mais antigos automaticamente e evita que os dados aumentem exponencialmente.

    O limpador de tabela é um trabalho programado que é executado uma vez por hora (por padrão) para excluir registros mais antigos, expirados ou indesejados das tabelas. O limpador de tabela evita que as tabelas atinjam um tamanho não gerenciável e melhora o desempenho da consulta.

    Você pode exibir uma lista de regras de limpeza de tabela na tabela Limpeza automática [sys_auto_flush] digitando sys_auto_flush.list no navegador de filtros. A tabela Limpeza automática exibe regras para tabelas do sistema de base e suas idades de registro correspondentes. Várias regras podem aparecer para uma única tabela se cada regra tiver uma condição exclusiva definida.

    Quais registros serão excluídos

    Cada regra de limpeza de tabela especifica o seguinte:

    • A tabela de destino (da qual excluir registros).
    • Um valor de campo de correspondência que corresponde a uma coluna de data/hora na tabela de destino. Idealmente, o campo Correspondência é um campo de data que representa há quanto tempo o registro está ativo (por exemplo, sys_created_on).
    • Um valor de Idade em segundos que determina quando a exclusão é acionada.
    • Opções para limpar registros relacionados em tabelas de periféricos ou de auditoria.
    • Uma ou mais condições opcionais para filtrar quais registros serão excluídos. Por exemplo, você pode especificar que somente os registros em que 'ativo = falso E estado = encerrado' sejam excluídos.

    Quando a data do campo de correspondência estiver mais distante do que o valor da Idade em segundos, o trabalho de limpeza da tabela excluirá o registro.

    Manipulação de regra lenta

    Quando o trabalho de limpeza de tabela é executado, cada regra de limpeza de tabela executa várias consultas como parte do processo. Se não houver nenhum índice no campo de correspondência de uma regra ou em partes significativas de sua condição, o processamento da regra poderá ser lento porque suas consultas estão sendo executadas de forma ineficiente em grandes quantidades de dados.

    Se uma regra de limpeza de tabela tiver uma consulta que leva mais de 30 segundos para ser concluída, todo o trabalho de limpeza de tabela será interrompido. Por padrão, o limpador de tabela espera dois dias antes de incluir essa regra no trabalho de limpeza de tabela novamente, o que permite que o trabalho de limpeza de tabela seja executado sem interrupção nesse meio tempo. Você pode configurar a duração do período de espera adicionando uma propriedade do sistema. Consulte Propriedades do limpador de tabela.

    Desabilitar limpador de tabela

    Você pode impedir que um administrador crie uma regra de limpeza de tabela ou execute o limpador de tabela em uma tabela específica, adicionando o atributo Desabilitar limpador de tabela ao registro de dicionário da tabela. Algumas tabelas internas do sistema têm o atributo Desabilitar limpador de tabela adicionado por padrão.

    Limitações do limpador de tabela

    Observe as seguintes limitações.

    • O limpador de tabela não é compatível com tabelas configuradas para usar rotação ou extensão de tabela.
    • O desempenho depende do tamanho da tabela e das condições que você especificar. Por exemplo, se você usar uma coluna personalizada sem um índice em uma tabela grande, o desempenho será gravemente degradado. O desempenho também depende do número de linhas a serem excluídas.
    • O limpador de tabela gasta no máximo 20 minutos para excluir registros de uma única tabela. Se as consultas forem lentas, o volume de registros excluídos no período de 20 minutos poderá ser pequeno.
    • O limpador de tabela não chama DBDelete.setWorkflow(). Isso significa que os objetos DBDelete são executados com workflow=false (falso é o valor padrão para um booliano Java), portanto, excluir regras de negócio e fluxos de trabalho não são acionados.