Para SQL Server:até 8 colunas do tipo
BIT
pode ser armazenado dentro de um único byte, enquanto cada coluna do tipo CHAR(1)
ocupará um byte. Por outro lado:um
BIT
coluna pode ter dois valores (0 =false, 1 =true) ou nenhum valor (NULL) - enquanto um CHAR(1)
pode ter qualquer valor de caractere (muito mais possibilidades) Então, na verdade, tudo se resume a:
- você realmente precisa de um campo verdadeiro/falso (sim/não)? Se sim:use
BIT
- você precisa de algo com mais do que apenas dois valores possíveis - use
CHAR(1)
Não acho que faça diferença significativa, do ponto de vista do desempenho - a menos que você tenha dezenas de milhares de colunas. Então, é claro, usando
BIT
que pode armazenar até 8 colunas em um único byte seria benéfico. Mas, novamente:para o seu caso de banco de dados "normal", onde você tem algumas, uma dúzia dessas colunas, realmente não faz grande diferença. Escolha o tipo de coluna que atende às suas necessidades - não se preocupe com o desempenho .....