Datetime vs SmallDatetime

Olá, hoje vou mostrar um dica sobre armazenar data e hora no SQL Server.
Na maioria dos casos quando vamos ter um “Datetime” em uma entidade é necessário a precisão de segundos(as vezes na hora de exibir acaba sendo de minutos), e por termos um tipo “Datetime” na entidade naturalmente optamos pelo mesmo tipo no SQL Server.
Mas vou mostrar como apenas mudando o tipo de dado no SQL Server podemos ter um ganho de performance e economizar armazenamento.

Segue o script completo:

Temos duas tabelas, uma usa Datetime e a outra usa o SmallDatetime.
No exemplo são inseridos 3.200.000 linhas em ambas as tabelas.
Ao executar a procedure sys.sp_spaceused temos o tamanho ocupado por cada tabela, TableDatetime 129952 KB e TableSmallDatetime 79264 KB.
Uma diferença de 50688 KB.
Isso se deve por o tipo SmallDatetime ter a precisão de segundos e já o Datetime por ter uma precisão de fração de segundo, ocupa mais espaço em disco.

Resumindo menos espaço em disco sendo usado significa consultas mais rápidas, e se você utiliza o Sql Database do azure gasta menos DTU’s pois acaba usando menos disco.

Espero ter ajudado e até a próxima.

Datetime
SmallDatetime