Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como melhorar o desempenho da filtragem de data e hora no SQL Server?


Apenas uma sugestão quando se trata de índices em datetime no msql é que a pegada do índice afeta os tempos de pesquisa (Sim, isso parece óbvio ... mas continue lendo).

A importância disso ao indexar no datetime diz, por exemplo, '2015-06-05 22:47:20.102', o índice deve levar em conta todos os lugares dentro do datetime. Isso se torna muito grande espacialmente e volumoso. Uma abordagem bem-sucedida que aproveitei é criar uma nova coluna de data e hora e preencher os dados arredondando a hora para a hora e, em seguida, criando o índice nessa nova coluna. Exemplo '2015-06-05 22:47:20.102' se traduz em '2015-06-05 22:00:00.000'. Ao adotar essa abordagem, deixamos os dados detalhados em paz e podemos exibi-los ou usá-los pesquisando nesta nova coluna, o que nos dá um retorno de aproximadamente 10x (no mínimo) sobre a rapidez com que os resultados são retornados. Isso se deve ao fato de que o índice não precisa levar em conta os campos de minutos, segundos e milissegundos.