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

Rozdělení podle roku vs. samostatné tabulky s názvem Data_2011, Data_2010 atd

Z vnitřního hlediska jsou metody v podstatě stejné.

V zákulisí, když vytvoříte oddíl založený na datu, stroj SQL vytvoří samostatné fyzické tabulky pro každý oddíl a pak udělá to, co je v podstatě UNION při dotazu na samotnou tabulku.

Pokud v dotazu na dělenou tabulku použijete filtr, který odpovídá vašemu dělícímu poli (DateField řekněme), pak může engine přejít přímo na oddíl, který potřebujete pro data. Pokud ne, prohledá každou fyzickou tabulku v logické tabulce podle potřeby k dokončení dotazu.

Pokud budou vaše dotazy zahrnovat filtr data (což z vaší otázky zní, že budou), pak si nemyslím, že by vaše „vlastní“ metoda měla žádnou výhodu.

V zásadě musíte učinit volbu, chcete být zodpovědní za veškerou logiku a rohové případy spojené s rozdělováním, nebo důvěřovat vývojářům v Microsoftu, kteří to dělají desítky let, že to udělají za vás?

Pro mé vlastní účely, pokud existuje vestavěný rámec pro něco, co chci dělat, vždy se jej snažím použít. Je vždy rychlejší, stabilnější a méně náchylné k chybám než řešení „svalte si své vlastní“.



  1. Jak dekódovat hex bajtového sloupce PostgreSQL na int16/uint16 v r?

  2. sqlalchemy, filtrujte sloupec json obsahující pole

  3. Jak odstranit duplikáty ze seznamu odděleného čárkami podle regulárního výrazu v Oracle regexp_replace?

  4. Rozsah nastavení počtu řádků v SQL