Pas du tout.
L'un des scénarios de partitionnement les plus courants consiste à utiliser un champ de date, qui n'a aucun lien avec votre PK.
Par exemple, si vous avez une table Orders
avec le champ, OrderDate
vous partitionnerez probablement en fonction du mois et de l'année de OrderDate
.
Lorsque les enregistrements expirent et ne sont plus pertinents, vous pouvez déplacer ces partitions vers une table d'archives ou une base de données afin qu'elles ne soient plus traitées.
Le partitionnement fonctionnera avec à peu près n'importe quel champ, mais pour qu'il fonctionne BIEN, le ou les champs sur lesquels vous partitionnez doivent être utilisés dans la plupart, sinon la totalité, de vos requêtes. Si vous n'incluez pas vos clés de partition, vous obtiendrez essentiellement une analyse de table coûteuse qui s'étend sur plusieurs tables (partitions).
MODIFIER
Pour la partie 2, je pense que la réponse est également négative. La clé de partition est utilisée pour déterminer dans quelle partition mettre la ligne, mais je ne pense pas qu'un index soit maintenu. Il peut cependant y avoir des statistiques à l'arrière.
Partition columns for a unique index must be a subset of the index key.
En plus de la réponse de JNK, vous devriez probablement lire cet article qui traite de l'alignement des partitions de table et des partitions d'index.
Il existe de nombreux types de scénarios dans lesquels le schéma de partitionnement suit exactement la première colonne de la clé primaire - par exemple dans un scénario d'entrepôt de données où la date d'instantané d'une table de faits est généralement la colonne de partition ainsi que la première colonne de la clé primaire.
Mais également, dans les environnements OLTP où le PK est une IDENTITY ou une autre clé de substitution, cela n'a pas de sens de l'utiliser pour la partition, car le partitionnement sur des nombres arbitraires n'est normalement pas terriblement utile. Dans les systèmes OLTP, vous avez également tendance à partitionner le plus par date (probablement pas dans le PK), mais potentiellement aussi régionalement ou par une sorte de division organisationnelle (peut-être dans le PK si vous n'utilisez pas de substitut).
Mais ce n'est pas une exigence.
la source
Il doit faire partie d'une clé candidate s'il ne fait pas partie de la clé primaire elle-même. L'idée étant, votre partitionnement devrait s'aligner sur la clé primaire.
Donc, la réponse est oui, il est préférable de faire partie du PK. Sinon, une autre clé, qui est tout aussi bonne pour être un PK.
la source
OrderDate
. Avez-vous quelque chose pour étayer vos réclamations?