sql >> Databáze >  >> RDS >> Sqlserver

Jak zlepšit výkon pro filtrování data a času v SQL Server?

Pouze návrh, pokud jde o indexy v datetime v msql, je stopa indexu, která ovlivňuje časy vyhledávání (Ano, zdá se to zřejmé... ale čtěte dále).

Důležité pro to při indexování na datetime říkají například '2015-06-05 22:47:20.102', index musí zohledňovat každé místo v datetime. To se stává prostorově velmi velké a objemné. Úspěšný přístup, který jsem využil, je vytvořit nový sloupec datetime a naplnit data zaokrouhlením času na hodinu a poté vytvořením indexu na tomto novém sloupci. Příklad „2015-06-05 22:47:20.102“ se překládá na „2015-06-05 22:00:00.000“. Tímto přístupem ponecháme podrobná data na pokoji a můžeme je zobrazit nebo použít hledáním v tomto novém sloupci, což nám poskytuje přibližně 10násobnou (minimálně) návratnost toho, jak rychle jsou výsledky vráceny. To je způsobeno skutečností, že index nemusí zohledňovat pole minut, sekund a milisekund.



  1. Odstraňování problémů Microsoft SQL Server Error 18456

  2. Oracle 11g na Mac OS X

  3. Výběr dat do pole Postgres

  4. Jaké je nastavení zobrazení časové části s datem ve vývojáři Oracle PL/SQL?