À medida que as bases de dados crescem em tamanho, é importante reorganizar e reduzir periodicamente os espaços das tabelas para manter o desempenho e otimizar o armazenamento. Como consultor BASIS da SAP, a limpeza é uma parte essencial do seu papel, ajudando o sistema SAP a funcionar sem problemas e melhorando o desempenho geral do sistema. Existem algumas tarefas padrão de limpeza que podem ser programadas através do SM36, no entanto, algumas limpezas de tabelas ainda requerem procedimentos adicionais que não estão incluídos no procedimento padrão. Estas tabelas estão relacionadas com os registros de alterações de registros de dados de registros de aplicação, documentos de escritório da SAP, etc. A limpeza dessas tabelas requer atenção adicional e um manejo/procedimento adequado.
Vamos tomar um exemplo da tabela transparente BALDAT (registros de aplicação) que também está associada com a tabela de cabeçalho BALHDR.
--------------------------------------------------------------------------------------------------------------------------------------
Atualização - 28 de março de 2023
Removemos cerca de 170 milhões de registros da tabela BALDAT e os resultados são surpreendentes ao realizar os passos anteriores:
Tamanho da tabela - 480 GB (Antes da reorganização e redução)
Tamanho da tabela - 68 GB (Depois da reorganização e redução)
A redução nos ajuda a recuperar espaço a nível de sistema operacional e foram adicionados mais de 400 GB de espaço aos pontos de montagem /sapdata.
--------------------------------------------------------------------------------------------------------------------------------------
O primeiro passo é obter um período de retenção aprovado para realizar qualquer atividade de limpeza para o seu sistema empresarial. Este valor de período deve ser aprovado pela sua empresa e deve estar dentro da política SOX. Vamos tomar um exemplo de que a empresa precisa de dados dos últimos 2 anos (730 dias) a partir da data atual.
A SAP fornece um trabalho padrão (SBAL_DELETE) para limpar os registros de aplicação que eventualmente diminuem a contagem tanto da tabela BALHDR quanto da tabela BALDAT. Lembre-se de uma coisa durante a limpeza, não é obrigatório que 1 registro de cabeçalho na tabela BALHDR esteja associado a 1 registro na tabela BALDAT. Deve haver 1 registro (BALHDR) associado a muitos registros (BALDAT). Esta é a razão pela qual a contagem e o tamanho de ambas as tabelas são diferentes e há uma grande diferença.
Depois de executar o trabalho de limpeza através do SBAL_DELETE para manter o período de retenção de 730 dias, verificou que o tamanho da tabela continua o mesmo apesar de a função REORG e RUNSTATS em linha já estar habilitada no DB2. O que vem a seguir?
Isso requer uma reorganização offline da tabela que exige um tempo de inatividade do sistema SAP. Esta função é usada para melhorar o desempenho do banco de dados reorganizando tabelas, índices e outros objetos do banco de dados. O processo de reorganização offline envolve quatro fases (curto, construir, substituir e recriar todos os índices). Na fase de construção, os dados são copiados do espaço de tabela original para um espaço de tabela do sistema, que é então otimizado para o desempenho. Este processo pode ser demorado, especialmente para bancos de dados grandes, mas aqui está a chave, se deseja executar uma reorganização offline de qualquer tabela, suponha que o tamanho atual da tabela seja de 500 GB, então deve haver um espaço semelhante disponível no sistema de arquivos do contêiner de espaço de tabela, pois este processo irá copiar o espaço de tabela para uma localização temporária.
Para executar uma reorganização offline no DB2 11.1, siga estes passos:
Obtenha a aprovação e encerre seu sistema SAP.
Identifique o espaço de tabela que deseja reorganizar (devemos verificar se o BALDAT está sob qual espaço de tabela)
db2 list tablespaces show detail | grep -i BALDAT
Outra forma de identificar o espaço de tabela é utilizando o
"syscat.tablespace"
Reinicie o banco de dados e mantenha a instância em modo de inatividade
db2 quiesce instance
NOME_DA_INSTÂNCIA
imediato
execute a reorganização offline na tabela respectiva
db2 reorg table BALDAT
O processo acima levará muito tempo para ser concluído (dependendo do tamanho). uma vez que a atividade de REORG estiver concluída, ative o RUNSTATS.
Runstats é uma função do DB2 que atualiza as estatísticas das tabelas e índices. Esta função é usada para otimizar o desempenho das declarações SQL fornecendo ao otimizador estatísticas precisas sobre os dados nas tabelas e índices.
Para executar o Runstats no DB2 11.1, siga estes passos:
db2 runstats on table BALDAT with distribution and detailed indexes all
Ambos os comandos acima são executados durante o tempo de inatividade.
Agora execute o comando unquiesce para liberar o banco de dados para uso.
Pedro Pascal
Se unió el 07/03/2018