Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak poprawić wydajność filtrowania daty i godziny w programie SQL Server?

Tylko sugestia, jeśli chodzi o indeksy daty i godziny w msql, jest taka, że ​​ślad indeksu wpływa na czas wyszukiwania (tak, wydaje się to oczywiste ... ale czytaj dalej).

Znaczenie tego przy indeksowaniu w dacie/godzinie mówi na przykład '2015-06-05 22:47:20.102' indeks musi uwzględniać każde miejsce w tym czasie. Staje się to bardzo duże przestrzennie i nieporęczne. Skutecznym podejściem, które wykorzystałem, jest utworzenie nowej kolumny datetime i wypełnienie danych przez zaokrąglenie godziny do godziny, a następnie zbudowanie indeksu na tej nowej kolumnie. Przykład „2015-06-05 22:47:20.102” przekłada się na „2015-06-05 22:00:00.000”. Stosując takie podejście, pozostawiamy szczegółowe dane w spokoju i możemy je wyświetlić lub użyć, przeszukując tę ​​nową kolumnę, która daje nam około 10x (przynajmniej) zwrot z szybkości zwracania wyników. Wynika to z faktu, że indeks nie musi uwzględniać pól minut, sekund i milisekund.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest system zarządzania bazą danych i relacyjnymi bazami danych (RDBMS)

  2. Dowiedz się, czy partycja jest skompresowana w programie SQL Server (T-SQL)

  3. Jak używać instrukcji IF/ELSE do aktualizacji lub tworzenia nowego wpisu węzła XML w Sql

  4. FILE_ID() vs FILE_IDEX() w SQL Server:jaka jest różnica?

  5. Czy mogę mieć klucz obcy odwołujący się do kolumny w widoku w SQL Server?