Keineswegs.
Eines der häufigsten Szenarien für die Partitionierung ist die Verwendung eines Datumsfelds, das in keiner Beziehung zu Ihrer PK steht.
Wenn Sie zum Beispiel eine Tabelle Orders
mit dem Feld haben OrderDate
, würden Sie höchstwahrscheinlich nach Monat und Jahr partitionieren OrderDate
.
Wenn Datensätze verfallen und nicht mehr relevant sind, können Sie diese Partitionen in eine Archivtabelle oder Datenbank verschieben, damit sie nicht mehr verarbeitet werden.
Partitionierung funktioniert mit so ziemlich jedem Feld, aber damit es GUT funktioniert, sollten die Felder, auf denen Sie partitionieren, in den meisten, wenn nicht allen Abfragen verwendet werden. Wenn Sie Ihre Partitionsschlüssel nicht angeben, erhalten Sie im Wesentlichen einen teuren Tabellenscan, der sich über mehrere Tabellen (Partitionen) erstreckt.
BEARBEITEN
Für Teil 2 denke ich , ist die Antwort auch nein. Der Partitionsschlüssel wird verwendet, um zu bestimmen, in welche Partition die Zeile eingefügt werden soll, aber ich glaube nicht, dass ein Index beibehalten wird. Es kann jedoch Statistiken im Back-End geben.
Partition columns for a unique index must be a subset of the index key.
Zusätzlich zur Antwort von JNK sollten Sie wahrscheinlich diesen Artikel lesen, in dem das Ausrichten von Tabellenpartitionen und Indexpartitionen beschrieben wird.
Es gibt viele Arten von Szenarien, in denen das Partitionsschema genau der ersten Spalte des Primärschlüssels folgt - beispielsweise in einem Data-Warehouse-Szenario, in dem das Momentaufnahmedatum einer Faktentabelle in der Regel die Partitionsspalte sowie die erste Spalte des Primärschlüssels ist.
In OLTP-Umgebungen, in denen der PK eine IDENTITY oder ein anderer Ersatzschlüssel ist, ist es jedoch wenig sinnvoll, dies für die Partition zu verwenden, da die Partitionierung nach beliebigen Zahlen normalerweise nicht besonders nützlich ist. In OLTP-Systemen tendieren Sie auch dazu, am häufigsten nach Datum zu partitionieren (wahrscheinlich nicht in der PK), aber möglicherweise auch regional oder nach einer Art organisatorischer Aufteilung (möglicherweise in der PK, wenn Sie keinen Ersatz verwenden).
Aber es ist keine Voraussetzung.
quelle
Es muss Teil eines Kandidatenschlüssels sein, wenn es nicht Teil des Primärschlüssels selbst ist. Ihre Partitionierung sollte sich am Primärschlüssel ausrichten.
Die Antwort lautet also: Ja, es wird bevorzugt, Teil der PK zu sein. Wenn nicht ein anderer Schlüssel, der genauso gut ist, um ein PK zu sein.
quelle
OrderDate
. Haben Sie irgendetwas, um Ihre Ansprüche zu stützen?