sexta-feira, 15 de maio de 2009

Calculando Limites de Particao

Ola,

Estou envolvido em um estudo de sizing para determinado ambiente, e me deparei com algo interessante que os Dbas Informix devem estar atentos, que e o limite de alocacao de paginas por particao.

Para explicar o problema, a referencia logica de um registro e feita atraves do rowid, no caso do Informix o rowid tem o seguinte format:

0xPPPPPPSS

P=Indica a Pagina logica dentro do extent
S=Indica o slot onde a linha se encontra dentro na pagina

O rowid 257 quando transformamos para hexadecimal temos 0x101, isto indica pagina logica 1 e slot 01, dentro do slot temos duas informacoes:

Offset=E o endereco do byte onde a linha se encontra na pagina
len=indica a quantidade de bytes que a linha possui

Portanto o Informix para acessar o registros se posiciona na pagina logica, vai ate o slot e le o byte onde inicia a linha e faz a leituras de N (Len) bytes a partir desta posicao.

E onde esta o problema citado no inicio do post?

Bom, neste formato enderecamos uma quantidade limitada de paginas , por exemplo:

0xFFFFFF = 16777215

Digamos que o tamanho da pagina logica do dbspace 'e de 2K, teremos 2*16777215 = 33.554.430 de paginas ou seja 32GB, se quisermos expandir o limite para 128GB temos que criar um dbspace com tamanho de pagina de 8K.

Após esta alteração caso o limite seja atingido ai a solução e particionar a tabela mesmo.

Lembre-se de nunca fazer isto:

select max(rowid) from tabela

Isto nao ira retornar o ultimo registros inserido!!

Saludos

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.