[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