Je suis en train d'optimiser les index dans une base de données SQL Server 2008 sur laquelle je travaille. En ce moment je suis sur la table "centrale".Index multiples vs forçage des analyses de table
Cette table est jointe sur 7 colonnes. Il a aussi une clé primaire (bien sûr), plus une datation que j'ai indexée dans l'ordre DESC. En raison de la nature des jointures, je crois que 6 index sont requis (certaines des jointures sont à des tables de cardinalité ultra basse ou ne seront pas interrogées).
Cependant, cette table est fortement écrite. La performance va être mauvaise avec 6 indices (et 1 est un index à 2 colonnes). Les requêtes peuvent être exécutées sur la plupart des tables jointes, donc je ne vois pas comment je peux supprimer des index.
Est-ce que quelqu'un connaît une bonne pratique pour déterminer comment équilibrer le nombre d'index?
Mise à jour:
Voici les colonnes d'intérêt dans le tableau:
MentionID int primary key
ParentID int indexed
ProfileID int indexed
SourceCategoryID tinyint indexed with next column
SourceID int
RoleplayerID int indexed
DateStamp smalldatetime indexed DESC
Subject nvarchar(1000)
KeyMessage nvarchar(1000)
SentimentID tinyint unindexed: low cardinality
ScopeID tinyint unindexed: low cardinality
Comment avez-vous arrivés à la conclusion: "Je crois que 6 indices est nécessaire"? –