Nous avons une grande table [MyTable]qui a actuellement à la fois un Primary Key, et un Unique Non Clustered Indexsur la même colonne ( [KeyColumn]). L'indice U NC comporte également des colonnes de couverture supplémentaires.
Avoir à la fois PK et Unique NC Index sur les mêmes colonnes semble redondant, donc j'envisageais de supprimer la clé primaire et d'utiliser à la place l'index Unique Non Clustered à des fins d'intégrité référentielle.
Notez que la table est entièrement groupée par une autre colonne.
donc nous avons:
ALTER TABLE [MyTable]
ADD CONSTRAINT [PK_MyTable]
PRIMARY KEY NONCLUSTERED ([KeyColumn])
GO
ET
CREATE UNIQUE NONCLUSTERED INDEX [IX_MyTable_SomeIndex]
ON [MyTable] ([KeyColumn])
INCLUDE ([Column1], [Column2])
GO
Pour autant que je sache, il n'est pas possible d'ajouter des colonnes de couverture à une clé primaire, j'ai donc l'intention de faire:
- Supprimez les contraintes de clé étrangère qui dépendent
MyTable.KeyColumn - Déposez la clé primaire
MyTable.KeyColumnentièrement - Ajoutez à nouveau les clés étrangères à la table (c'est-à-dire que RI sera appliqué via
MyTable.KeyColumn)
La seule implication à laquelle je peux penser est que nous n'obtiendrons pas le symbole de clé visuelle sur nos diagrammes ERD, et que la densité d'index (feuille) sera inférieure en raison des colonnes incluses.
J'ai lu /programming/487314/primary-key-or-unique-index et je suis satisfait des aspects d'intégrité et de performances de cette opération.
Ma question est: cette approche est-elle défectueuse?
Modifier ce que j'essaie d'accomplir : optimisation des performances et nettoyage de printemps . En supprimant le PK ou un index, il y aura moins de pages nécessaires pour mes index = des écritures plus rapides, ainsi que des avantages de maintenance / d'exploitation, c'est-à-dire un index de moins à conserver défragmenté, etc.
Pour mettre un peu de fond à cela, je n'ai jamais eu auparavant de table référencée, sans PK. Cependant, le fait qu'un index NC avec des colonnes de couverture ait été ajouté au tableau signifie que je dois adapter ma réflexion.