DB2 reorganizar uma tabela
Call Sysproc.admin_cmd ('reorg Table myTable');
Estou à procura de uma solução apropriada para reorganizar uma tabela quando ela é alterada, ou reorganizar todos os esquemas depois de fazer várias modificações
3 answers
A operação reorg é semelhante a uma desfragmentação no disco rígido. Ele liberta espaços vazios em páginas, e eventualmente ele poderia reorganizar os dados de acordo com um índice. Dependendo das características, cria o dicionário de compressão e comprime os dados.
Como podem ver, a operação reorg é uma tarefa administrativa, e não é necessário alterar os dados de cada vez. Uma base de dados podia correr sem o reorg.Para facilitar isto, o DB2 incluía funcionalidades autónomas como a cópia de segurança automática., no entanto, isto não responde à sua pergunta. Isso só vai desencadear reorg em tabelas que precisam disso.
- para reorg uma tabela explicitamente você precisa executar o comando reorg http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0001966.html
- ou através do admin_cmd http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.sql.rtn.doc/doc/r0023582.html
Pode determinar quando as tabelas necessitarão de um {[1] } olhando para SYSIBMADM.ADMINTABINFO
:
select tabschema, tabname
from sysibmadm.admintabinfo
where reorg_pending = 'Y'
Você também pode querer olhar para a coluna NUM_REORG_REC_ALTERS
Pois isto pode mostrar-lhe tabelas adicionais que não exigem reorganização devido a váriasALTER TABLE
declarações.
Na configuração db2 temos:
Reorganização automática (AUTO_REORG) = desligado
Podemos colocar auto_reorg em {[[2]}