Ich habe eine Tabelle mit ~ 200 Millionen Zeilen und ~ 15 Spalten. Ich plane, einen COLUMNSTORE
Index für meine Tabelle zu erstellen .
Wird sich die Leistung aufgrund der Reihenfolge der Spalten ändern, die ich im Columnstore-Index verwende? Wenn ja, welche Logik steckt dahinter?
sql-server
database-design
sql-server-2012
index
columnstore
Vinay Kumar Chella
quelle
quelle
Antworten:
Nein, die Reihenfolge spielt keine Rolle. Jede Spalte wird einzeln betrachtet.
Vom SQL Server-Team (Hervorhebung hinzugefügt):
quelle
Reihenfolge spielt keine Rolle, was ist wichtig, wenn Sie ALLE Spalten aus der Basistabelle in den Columnstore-Index aufnehmen sollten - mehr über meine vorherige Antwort auf diese Frage hier
quelle
In SQL Server 2012-2016 haben Sie das Konzept der Segmenteliminierung ( http://social.technet.microsoft.com/wiki/contents/articles/5651.understanding-segment-elimination.aspx ) und können die Reihenfolge von erzwingen mindestens 1 Spalte (plus 1 zusätzliche in jeder Partition).
Beachten Sie den folgenden Artikel, in dem das Laden von Daten für eine bessere Segmenteliminierung erläutert wird: Laden von Daten für eine bessere Segmenteliminierung
quelle
Es gibt eine großartige Antwort von Aaron aus dem Jahr 2012, um das zu erweitern ...
Mit SQL 2014+ stehen Clustered Columnstore-Indizes zur Verfügung. Beim Erstellen eines Clustered Columnstore-Index sind keine Optionen für die Spaltenauswahl oder -reihenfolge verfügbar. Beschriebene Columnstore-Indizes
quelle