:: Banco de dados :: Empty Fields ocupa espaço?

1 resposta
ceara

PessoALL…

Minha dúvida é a seguinte, uma coluna no banco de dados SEM VALOR ocupa espaço?

  • Ocupa o mesmo espaço se tivesse valor?
  • Ocupa um espaço menor do que se tivesse valor?
  • Ocupa o mesmo espaço se não existisse a coluna

Já ouvi de um arquiteto que:
No oracle os espaços são prealocados, logo a resposta pro oracle é SIM
No SQL server não ocupa espaço, logo a resposta pro oracle é NÃO

Mas queria uma informação mais precisa sobre isso, experiências sobre isso, se alguem tem algo a dizer.

No aguardo e obrigado

Rafael Ferreira

1 Resposta

T

Eu sou preguiçoso e uso normalmente o recurso do EA (Enterprise Architect) que faz o cálculo do espaço para mim.

Eu não me preocupo tanto com isso; eu prefiro saber:

  • Qual é a quantidade prevista de dados, em registros;
  • Qual é a taxa de crescimento desses dados;

para poder fazer uma previsão usando algum recurso desses programas, que têm as fórmulas corretas para cada versão do banco.
Se para cada campo são reservados no mínimo 4 bytes, ou então se não se usa espaço nenhum (e se o indicador de comprimento para um campo VARCHAR é usado apenas se o campo não é NULL), é coisa que depende de cada banco.

Cada banco tem uma política diferente, é caso de você consultar a documentação do tal banco.

Hoje em dia, normalmente é melhor usar VARCHAR que usar CHAR, já que o tempo de acesso a disco é infinitamente superior ao tempo para fazer contas, e então é melhor trabalhar com os dados ocupando a menor quantidade de espaço em disco possível. Em muitos bancos (acho que no Oracle e no SQL Server é assim) CHAR e VARCHAR são implementados exatamente da mesma forma.

Criado 3 de junho de 2008
Ultima resposta 3 de jun. de 2008
Respostas 1
Participantes 2