J'ai cet escenario:
TableA: +2M rows. TableB: +60K rows.
Je dois INNER JOIN
par deux champs ([Month] AS INT, [Year] AS INT)
.
Je cherche à améliorer les performances de cette requête; pour cela je pourrais créer un index pour [Month, Year]
ou je pourrais créer deux index de sepparate pour [Month]
et [Year]
. Quels critères devrais-je considérer pour choisir l'une de ces deux approches?
Allez-vous jamais chercher l' year
sans chercher le month
? Que diriez-vous de chercher un month
sans jamais chercher l' year
?
Si vous ne searchz jamais l'une de ces colonnes sans searchr l'autre, créez un index comprenant les deux colonnes.
Si vous ne searchz que le month
ou le month
et l' year
, créez un index pour le month
et l' year
, en notant que le month
est le bord principal de l'index.
Si vous searchz parfois chaque colonne individuellement, créez deux index distincts, un pour chaque colonne … Sql Server peut efficacement utiliser ces deux index si vous searchz les deux colonnes en même time.