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

SQL Server 2008 rozdělená tabulka a paralelismus

Rozdělení není nikdy možnost pro zlepšení výkonu. Nejlepší, v co můžete doufat, je mít stejný výkon s nerozdělenou tabulkou. Obvykle dostanete regresi, která se zvyšuje s počtem oddílů. Pro výkon potřebujete indexy, ne oddíly. Oddíly jsou pro operace správy dat:ETL, archivace atd. Někteří tvrdí, že odstranění oddílu je možným zvýšením výkonu, ale u čehokoli může odstranění oddílu přinést umístění hlavního indexového klíče do stejného sloupce jako sloupec rozdělení, což poskytne mnohem lepší výsledky.

Tento dotaz potřebuje index na State . Jinak je to skenování stolu a skenování celého stolu. Skenování tabulky přes rozdělenou tabulku je vždy pomalejší než skenování přes stejně velkou tabulku bez oddílů. Samotný index lze zarovnat na stejné schéma oddílů, ale úvodní klíč musí být State .

Paralelismus nemá nic společného s dělením, navzdory běžné mylné představě o opaku. Jak dělené, tak nerozdělené skenování rozsahu lze použít paralelní operátor, bude to rozhodnutí Query Optimizer.

Ne

Pomůže index. Pokud má být index zarovnán, musí být rozdělen. Nerozdělený index bude rychlejší než rozdělený, ale požadavek na zarovnání indexu pro operace přepínání/vypínání nelze obejít.

Pokud se díváte na dělení, mělo by to být proto, že potřebujete provést rychlé operace přepnutí a vypnutí, abyste smazali stará data po období zásad uchovávání nebo něco podobného. Pro výkon se musíte dívat na indexy, ne na dělení.



  1. Jak vrátit řádky, které v tabulce chybí - Zpráva o nepřítomnosti zaměstnance

  2. Co přesně dělá skupina by?

  3. Řešení této snadné spouště

  4. problémy s OneToMany včetně klauzule o filtru v jarním JPA