it-swarm-eu.dev

Musí být oddíl oddílu také součástí primárního klíče?

Rozděluji tabulku na sloupec, který není primárním klíčem? Dnes jsem četl některé protichůdné informace o tom, zda sloupec oddílu musí být součástí primárního klíče. Moje střeva říká ne, ale nejsem si stoprocentně jistý. Takže otázky ...

  1. Musí být sloupec oddílu součástí primárního? Doporučuje se tak či onak?
  2. Musím vytvořit index pro klíč oddílu nebo to provede DBMS automaticky sám?
24
AngryHacker

vůbec ne.

Jedním z nejčastějších scénářů pro rozdělení je použití datového pole, které s vaším PK zcela nesouvisí.

Například pokud máte tabulku Orders s polem OrderDate, pravděpodobně byste rozdělili oddíl na základě měsíce a roku OrderDate.

Když záznamy stárnou a přestanou být relevantní, můžete tyto oddíly přesunout do archivní tabulky nebo databáze, takže již nebudou zpracovávány.

Dělení diskových oddílů bude fungovat téměř v jakémkoli poli, ale aby to fungovalo dobře, měla by být pole, ve kterých se dělíte, používány ve většině, ne-li ve všech vašich dotazech. Pokud klíče diskových oddílů nezahrnete, získáte v zásadě drahé skenování tabulky, které prochází několika tabulkami (oddíly).

UPRAVIT

Pro část 2, já myslím , odpověď také není. Klíč oddílu se používá k určení oddílu, do kterého se má řádek vložit, ale nemyslím si, že je index udržován. Na konci však mohou být statistiky.

11
JNK

Kromě odpovědi JNK byste si měli přečíst také tento článek , který pojednává o zarovnávání oddílů tabulky a oddílů indexu.

Existuje mnoho typů scénářů, kde schéma dělení přesně následuje první sloupec primárního klíče - například ve scénáři datového skladu, kde datum snímku faktické tabulky je obvykle sloupec oddílů, stejně jako první sloupec v primárním klíči.

Stejně tak v prostředích OLTP, kde PK je IDENTITY nebo jiný náhradní klíč) nemá smysl použít toto pro oddíl, protože rozdělení na libovolná čísla není obvykle příliš užitečné. OLTP systémy, také máte tendenci rozdělit podle data nejvíce (pravděpodobně ne v PK), ale potenciálně také regionálně nebo nějakým druhem organizačního rozdělení (možná v PK, pokud nepoužíváte náhradní).

Ale to není požadavek.

3
Cade Roux

Musí být součástí Kandidátského klíče, pokud není součástí samotného primárního klíče. Představte si, že by se vaše rozdělení mělo zarovnat s primárním klíčem.

Odpověď zní: ano, je preferováno být součástí PK. Pokud ne, další klíč, který je stejně dobrý, aby byl PK.

0
srini.venigalla