[firebase-br] Numeric, BigINT, Char ou VarChar para armazenar numero de 14 dígitos? Indices sobre expressões vale a pena?

Fernando Reis Guimarães fernandobhz em gmail.com
Dom Out 1 16:12:50 -03 2006


Olá pessoal.

Estou precisando da ajuda de vocês...

Tenho um banco de dados que está hoje com 6 milhões de registros e + 500mil
mensais.

Tem um campo que identifica nosso cliente que é chamado referencia que é
composto assim:

Referencia = Loccal + Rz + Rt + Conta

Loccal = 5 dígitos numéricos
Rz = 2 dígitos numéricos
Rt = 2 dígitos numéricos
Conta = 5 dígitos numéricos

Um exemplo de referencia seria: 88020010212345.

Hoje tenho um campo para cada um dos dados, inclusivo a união deles a
referencia, totalizando 5 campos..

Tenho duas dúvidas.

1.: Qual melhor tipo de campo para armazenar a referencia? Hoje estou usando
um varchar(15).

2.: É viável manter armazenados os dados fragmentados? Gravo-os pois preciso
fazer consultas baseadas neles ( ex.: select * from tabela where rz = 1 )
eles têm índices.
      A pouco tempo lendo a DBFreeMagazine que descobri que poderia criar um
índice baseado numa expressão tipo assim:
            CREATE INDEX TABELA_LOCCAL ON TABELA COMPUTED BY (
substring(referencia from 1 for 5));

      Por isso a minha dúvida. Perderia performance se exlcui-se estes
campos fragmentados e seus índices e criasse somente os índices baseados em
expressão.



Agradeço desde já a atenção dada a leitura desde.
Atenciosamente;
Fernando.



Mais detalhes sobre a lista de discussão lista