Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marlon Silva

Tipos de dado NUMBER e VARCHAR

Recommended Posts

Olá, boa noite.

 

Tenho uma tabela "documentos", que dentre os campos, há um chamado "numero".

Os números armazenados neste campo têm em média 17 caracteres.

Ex: 20015100004567003

 

Com este número não é feito cálculos, apenas consultas.

Há mais de 1.000.000 de registros na tabela.

 

Visto isso, e considerando suas experiências, gostaria de saber qual o tipo de dado mais recomendado para se utilizar neste caso. VARCHAR ou NUMBER?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tipo NUMBER é mais ecomômico e garente que sejam gravados números.

O tipo VARCHAR2 é indica para alfa e quando o tamanho varia, por exemplo NOME , ENDERECO etc.

O CHAR é indicado quando o tamanho é fixo, exemplo Placa de carro etc.

 

A desvantagem é que para garatir gravar somente números nos CHAR´s é preciso criar uma constraint.

 

Se a variação for grande eu usaria VARCHAR2, se for pequena e grande usaria NUMBER mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo para um número grande assim? Na casa dos quatrilhões?

Achei que a performance nas consultas caía, por ter que gerenciar números como esse.

 

Mas se você diz é porque deve ter experiência.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O NUMBER usa metade do tamanho em bytes (em média) , tentei achar a documentação mas não achei, depois procuro e posto aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas metade Motta? Pensei que era matematicamente falando da seguinte forma...

 

...para cada caractere alfanumérico utilizar um Byte que sozinho armazenaria 256 numeros diferentes e sempre vai caindo esta diferença conforme aumentamos o numero de bytes alocados para texto ou números

 

1 Byte = 1 Caractere = 2 elevado a 8 números = 256 números diferentes

2 Bytes = 2 Caracteres = 2 elevado a 16 números = 65536 números diferentes

 

Tornando sempre o tipo de dados correto amplamente melhor que "soluções alternativas"

 

E assim por diante ou não é bem assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mário, citei este número de uma informação que tenho de cabeça, procurei a documentação correpondente e não a achei, o que me leva a desconfiar que posso ter uma lenda urbanana cabeça.

 

Mas vou pesquisar isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então se tiver algo concreto mostre pois sempre pensei que fosse da forma que passei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que ambos estamos certo Mário o cálculo da metade é grosso modo, apenas para contas rápidas.

 

Mas vou ver isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De qualquer forma sempre é melhor usar o tipo de dados correto, se for numero um tipo de dados numérico, se for data mesma coisa

 

Tipo de dados texto é exceção, é quando só ele resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procurei agora a "minha documentação" é ela non ecxiste, ou seja lenda urbana.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.