2009-12-21 5 views
1

Lors de la création d'un index pour une requête spécifique, il est recommandé d'indexer toutes les colonnes de la clause where et de sélectionner des colonnes dans la section "colonnes incluses". Dois-je laisser les colonnes de bits hors de l'index?Question d'index SQL Server

Répondre

1

Bit d'un classique "ça dépend". Si vous les incluez, vous créez un index de couverture, qui sera beaucoup plus efficace mais vous encourrez également une pénalité sur l'insertion de ligne, les suppressions et certaines mises à jour. Vous payez également un prix sur l'espace disque, donc si vous allez inclure des colonnes très larges sur une grande table, vous équilibrez l'augmentation des frais de stockage par rapport au gain de performance. Toutes choses étant égales par ailleurs, un indice de recouvrement est normalement une bonne chose, mais il faut tenir compte des restrictions telles que l'espace et les frais généraux sur les autres opérations.

+0

Sur cette base de données particulière, les insertions/mises à jour/suppressions ne sont effectuées qu'une fois par jour au milieu de la nuit, donc je suis prêt à prendre un coup sur cette performance. Sachant que cela ressemble à un indice de couverture serait la voie à suivre alors? –

+0

Semble plus comme un DW ou Hybrid qu'un OLTP pur donc un indice de couverture est probablement en votre faveur - mais c'est vraiment un YMMV. – Andrew

+0

Oui c'est un DW. YMMV? –