Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да подобрим производителността за филтриране по дата и час в SQL Server?

Само предложение, когато става въпрос за индекси за дата и време в msql е, че отпечатъкът на индекса влияе върху времето за търсене (Да, това изглежда очевидно... но моля, прочетете нататък).

Значенията за това при индексиране на датата и часа казват например '2015-06-05 22:47:20.102', индексът трябва да отчита всяко място в рамките на датата и часа. Това става много голямо пространствено и обемно. Успешен подход, който използвах, е да създам нова колона за дата и час и да попълните данните, като закръглите времето до часа и след това изградите индекса върху тази нова колона. Пример „2015-06-05 22:47:20.102“ се превежда като „2015-06-05 22:00:00.000“. Като използваме този подход, оставяме подробните данни сами и можем да ги покажем или да ги използваме чрез търсене в тази нова колона, което ни дава приблизително 10x (минимум) възвръщаемост на това колко бързо се връщат резултатите. Това се дължи на факта, че индексът не трябва да отчита полетата за минути, секунди и милисекунди.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте заявката на SQL Server в MySQL

  2. Как да стартирате множество SQL команди в една SQL връзка?

  3. Как да деактивирате всички тригери в базата данни на SQL Server

  4. Преобразуване на низове на Sql сървър към дата

  5. Проверете пространството, използвано от таблица в SQL Server