Consultor Eletrônico



Kbase 47556: Procedimento para eliminar fragmentação de tabelas no banco de dados informix
Autor   Clayton Jorge De Souza - CAT
Acesso   Público
Publicação   11/22/2012
Procedimento para eliminar fragmentação de tabelas no banco de dados :


1 ? executar script para verificar fragmentação das tabelas;
--------------------------------------------------------------------------------------------------------------------
database sysmaster;
select b.tabname,a.ti_nextns,a.ti_nptotal, (a.ti_nptotal * P)/1024 f_ext,
((a.ti_nptotal * P) * 0.10)/1024 n_ext
from systabinfo a,logix@XXX:systables b
where b.partnum=a.ti_partnum
and a.ti_nextns > 1
and b.tabid > 99
order by 2 desc

Onde :
P = tamanho da página do banco de dados. (pgsize)
XXX = nome da instância onde está o banco de dados.
--------------------------------------------------------------------------------------------------------------------

2 ? gerar schema(.sql) da(s) tabela(s) necessária(s) com opção ??ss?
3 ? salvar os dados(registros) da tabela ? unload
4 ? editar o ?.sql? gerado e alterar os valores dos parâmetros ?extent size e next size? para os valores retornados no SQL do passo 1 (f_ext e n_ext respectivamente). Utilzar apenas os valores inteiros antes da vírgula/ponto .
5 ? eliminar a tabela do banco;
6 ? recriar com o script modificado no passo 4;
7 ? carregar novamente os dados da tabela (load). Se o volume de registro for muito grande deve-se utilizar dbload.
8 ? executar update statistics médium para a tabela recriada.