J'ai un tableau avec environ 200 millions de lignes et environ 15 colonnes. Je prévois de créer un COLUMNSTORE
index sur ma table.
Y aura-t-il des changements de performances en fonction de l'ordre des colonnes que j'utilise dans l'index columnstore? Si oui, quelle est la logique derrière cela?
sql-server
database-design
sql-server-2012
index
columnstore
Vinay Kumar Chella
la source
la source
Réponses:
Non, l'ordre n'a pas d'importance. Chaque colonne est considérée individuellement.
De l'équipe SQL Server (soulignement ajouté):
la source
l'ordre n'a pas d'importance, qu'importe si vous devez inclure TOUTES les colonnes de la table de base dans l'index columnstore - plus via ma réponse précédente à cette question ici
la source
Dans SQL Server 2012-2016, vous avez le concept d'élimination de segment ( http://social.technet.microsoft.com/wiki/contents/articles/5651.understanding-segment-elimination.aspx ) et vous pouvez réellement forcer l'ordre de au moins 1 colonne (plus 1 supplémentaire à l'intérieur de chaque partition).
Considérez l'article suivant qui explique le chargement des données pour une meilleure élimination des segments: Chargement des données pour une meilleure élimination des segments
la source
Il y a une excellente réponse existante d'Aaron à partir de 2012, pour développer cela ...
Avec SQL 2014+, vous avez des index clusterstore disponibles. Lors de la création d'un index columnstore en cluster, aucune sélection de colonne ou option de commande n'est disponible. Description des index Columnstore
la source