sql >> Database >  >> RDS >> Sqlserver

Hoe de prestaties voor datetime-filtering in SQL Server te verbeteren?

Slechts een suggestie als het gaat om indexen op datetime in msql is dat de indexvoetafdruk de zoektijden beïnvloedt (Ja, dit lijkt voor de hand liggend ... maar lees alstublieft verder).

Het belang hiervan bij het indexeren op de datetime zegt bijvoorbeeld '2015-06-05 22:47:20.102' de index moet rekening houden met elke plaats binnen de datetime. Dit wordt ruimtelijk erg groot en omvangrijk. Een succesvolle aanpak die ik heb gebruikt, is het maken van een nieuwe datetime-kolom en het vullen van de gegevens door de tijd af te ronden op het uur en vervolgens de index op deze nieuwe kolom te bouwen. Voorbeeld '2015-06-05 22:47:20.102' vertaalt naar '2015-06-05 22:00:00.000'. Door deze benadering te volgen, laten we de gedetailleerde gegevens alleen en kunnen deze weergeven of gebruiken door te zoeken in deze nieuwe kolom, wat ons ongeveer 10x (minimaal) rendement geeft op hoe snel resultaten worden geretourneerd. Dit komt doordat de index geen rekening hoeft te houden met de velden voor minuten, seconden en milliseconden.



  1. Datumlijst in een bereik krijgen in PostgreSQL

  2. Top 50 SQL Server-interviewvragen die u in 2022 moet voorbereiden

  3. Agent is geblokkeerd

  4. SQL Server BIT-gegevenstype – Ultieme gids