Question

J'ai une table avec ~ 200 millions de lignes et 15 colonnes ~ en elle. Je prévois de créer un index de COLUMNSTORE sur ma table.

Y aura-t un changement de performance en fonction de l'ordre des colonnes que j'utilise dans l'indice columnstore? Si oui, quelle est la logique derrière elle?

Était-ce utile?

La solution

Non, l'ordre n'a pas d'importance. Chaque colonne est considéré individuellement.

A partir de l'équipe SQL Server (italique ajouté):

En général, vous voulez mettre toutes les colonnes de votre table dans l'index columnstore. Peu importe quel ordre vous énumérer les colonnes parce qu'un indice columnstore ne dispose pas d'une clé comme un index B-tree fait. En interne, les données seront réorganisées automatiquement pour obtenir la meilleure compression.

Autres conseils

ordre n'a pas d'importance, ce qui importe si vous devez inclure toutes les colonnes de la table de base de l'indice columnstore - plus par ma précédente réponse à cette question ici

Dans SQL Server 2012-2016 vous avez le concept d'élimination du segment ( http://social.technet.microsoft.com/wiki/contents/articles/5651.understanding-segment-elimination.aspx ) et vous pouvez réellement forcer l'ordre d'au moins 1 colonne (plus 1 supplémentaire à l'intérieur de chacun des partition).

Considérons l'article suivant qui explique le chargement de données pour une meilleure élimination de segment: Chargement de données pour une meilleure élimination segment

Il y a un à partir de 2012, existant excellente réponse par Aaron Pour développer ce ...

Avec SQL 2014+ vous avez des index cluster de columnstore disponibles. Lors de la création d'un index de columnstore en cluster, il n'y a pas de sélection de colonne ou des options de commande disponibles. columnstore index Décrite

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top