Na semana passada, exploramos o impacto dos tipos de dados de caracteres no desempenho do banco de dados. Esta semana, vamos nos aprofundar nos tipos de dados numéricos no SQL Server e discutir como eles são armazenados, bem como as vantagens e desvantagens de cada tipo.
Tipos de Dados Numéricos Exatos
A primeira categoria que examinaremos são os tipos de dados numéricos exatos. Esses tipos de dados são chamados assim porque permitem que você defina a precisão e a escala. A precisão refere-se ao número total de dígitos à esquerda e à direita do ponto decimal, enquanto a escala determina o número de casas decimais que o SQL Server irá armazenar. Se houver mais casas decimais do que a escala especificada, o SQL Server arredondará o valor.
Há dois tipos de dados numéricos exatos no SQL Server:
- Decimal: Esse tipo de dado pode armazenar valores entre -10^38 e 10^38. O tamanho de armazenamento varia de 2 a 17 bytes, dependendo da precisão.
- Numérico: Semelhante ao tipo de dado decimal, o numérico também pode armazenar valores entre -10^38 e 10^38. Ele usa entre 2 e 17 bytes de armazenamento, dependendo da precisão.
Vale ressaltar que os tipos de dados decimal e numérico são essencialmente os mesmos. O tipo de dado numérico é mantido principalmente no SQL Server por compatibilidade com versões anteriores. É aconselhável considerar a descontinuação do uso do tipo de dado numérico para garantir a preparação para sua aposentadoria no futuro.
Tipos de Dados Numéricos Absolutos ou Fixos
A próxima categoria de tipos de dados numéricos no SQL Server são os tipos absolutos ou fixos. Ao contrário dos tipos de dados exatos, esses tipos de dados não podem ser ajustados usando precisão.
Há três tipos de dados numéricos fixos:
- Inteiro: O tipo de dado inteiro pode armazenar valores entre -2.147.483.648 e 2.147.483.647. Ele usa 4 bytes de armazenamento.
- SmallInt: SmallInt pode armazenar valores entre -32.768 e 32.767. Ele usa 2 bytes de armazenamento.
- TinyInt: TinyInt pode armazenar valores entre 0 e 255. Ele usa 1 byte de armazenamento.
Como os processadores Intel trabalham com blocos de dados de 4 bytes de cada vez, o tipo de dado inteiro é o mais otimizado para desempenho.
Tipos de Dados Numéricos Especializados
Além dos tipos de dados numéricos exatos e fixos, o SQL Server também fornece tipos de dados especializados para casos de uso específicos.
Dinheiro: O tipo de dado dinheiro pode armazenar valores entre -$922.337.203.685.477,5808 e $922.337.203.685.477,5807. Ele usa 8 bytes de armazenamento.
Small Money: Por outro lado, o small money pode armazenar valores entre -$214.748,3648 e $214.748,3647. Ele usa 4 bytes de armazenamento.
Tanto o tipo de dado dinheiro quanto o small money armazenam valores no formato de moeda, como $20,5. Como regra geral, é recomendado usar tipos de dados numéricos exatos para representar esses valores e realizar qualquer manipulação de dados necessária no nível da aplicação.
Compreender os diferentes tipos de dados numéricos no SQL Server e seus requisitos de armazenamento é crucial para otimizar o desempenho do banco de dados e garantir uma representação precisa dos dados. Ao selecionar o tipo de dado apropriado para suas necessidades específicas, você pode aprimorar a eficiência e a confiabilidade do seu banco de dados SQL Server.