Ist die Reihenfolge der Spalten in einem Columnstore-Index von Bedeutung?


12

Ich habe eine Tabelle mit ~ 200 Millionen Zeilen und ~ 15 Spalten. Ich plane, einen COLUMNSTOREIndex 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?


Antworten:


15

Nein, die Reihenfolge spielt keine Rolle. Jede Spalte wird einzeln betrachtet.

Vom SQL Server-Team (Hervorhebung hinzugefügt):

In der Regel möchten Sie alle Spalten in Ihrer Tabelle in den Columnstore-Index einfügen. Es spielt keine Rolle, in welcher Reihenfolge Sie die Spalten auflisten, da ein Columnstore-Index keinen Schlüssel wie ein B-Tree-Index hat. Intern werden die Daten automatisch neu geordnet, um die beste Komprimierung zu erzielen.


Gibt es kein Konzept, dass Spalten mit hoher Dichte an erster Stelle in der Reihenfolge stehen sollten und Spalten mit niedriger Dichte an letzter Stelle in der Reihenfolge stehen sollten? Häufig verwendete Spalten sollten an erster Stelle in der Reihenfolge stehen.
Vinay Kumar Chella

1
Nicht, dass mir das bewusst wäre - Columnstore-Indizes funktionieren nicht wie herkömmliche B-Tree-Indizes.
Aaron Bertrand

In Ordnung. Ich habe auf einer Konferenz gehört, aber keine Quelle dafür gefunden. Warten wir auf weitere Kommentare ...
Vinay Kumar Chella

2

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



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.