Bonjour à tous
Alors voilà, j'ai une table de 56M de lignes.
Comme il est coutume dans ma boite, cette table n'as pas d'identifiant unique, ni de colonne auto-incrémentée et n'as pas de clé primaire clustérisé.
L'unicité se fait sur 6 colonnes, 2 Int, 2 Char(2) et un Char(4)
Le gros de l'utilisation de cette table est un Select * avec les 6 clé dans la clause Where.
SQL recommande de créer un index comprenant ces 6 clés et d'inclure toutes les colonnes de la table, ce qui me semble un peu idiot(D'avoir les données a double).
Du coup j'ai plusieurs solutions
Créer une clé primaire clustérisé avec les 6 colonnes ce qui serait efficace à la recherche mais lent à la l'écriture (j'imagine)
Ajouté une clé auto-incrémentée, de la définir comme clé primaire et de créer une clé séparée qui contienne mes 6 colonnes. Mais je vais perdre la puissance des Include...
Que choisir ? Est-ce que j'ai une 3 solution ?
Est que ça ne serait pas un cas pour un index de type ColumnsStore ?
Partager