Ist die Reihenfolge der Spalten in der Tabelle wichtig?

8

Wir haben eine Reihe von großen und kleinen Projekten - die meisten (wenn nicht alle) verwenden mindestens eine SQL Server DB. Alle von ihnen haben unterschiedliche Umgebungen eingerichtet. In der Regel: dev (1+), QA, UAT, Live. Es ist auch üblich, dass wir verschiedene Code-Updates in verschiedenen Umgebungen unabhängig voneinander veröffentlichen. Natürlich enthalten einige dieser Updates Schemaaktualisierungsskripts wie

%Vor%

Manchmal manuell gemacht, manchmal mit Red Gate SQL / Data Compare.

Wie auch immer, ich gehe davon aus, dass oft unterschiedliche Umgebungen für dasselbe Projekt mit einer anderen Reihenfolge der Spalten enden. Ist das ein Problem? Ich weiß es nicht wirklich ... Hat die Spaltenreihenfolge Auswirkungen auf die Leistung? Alles, was ich vermissen könnte?

    
Ilia G 15.12.2010, 18:20
quelle

2 Antworten

8

Nein, die Spaltenreihenfolge ist nicht signifikant. Tatsächlich kann die Reihenfolge, in der die Spaltendaten auf der Festplatte gespeichert werden, von der in den Client-Tools angezeigten Reihenfolge abweichen, da die Engine die Daten neu anordnet, um Speicherplatz und Lese- / Schreibleistung zu optimieren (mehrere Bitfelder an einem einzigen Speicherort ablegen) , Spalten an Speichergrenzen ausrichten, etc ..)

    
Charles Bretana 15.12.2010, 18:25
quelle
3

Nicht wirklich - in 95% Ihrer Fälle gibt es keinen Unterschied in der Spaltenreihenfolge. Und aus relationaler Sicht ist die Spaltenreihenfolge in einer Tabelle ohnehin irrelevant.

Es gibt einige Randfälle, in denen die Spaltenreihenfolge möglicherweise einen leichten Einfluss auf Ihre Tabelle hat, meistens, wenn Sie eine große Anzahl von Feldern variabler Größe (wie VARCHAR) haben. Aber diese Zahl muss wirklich groß sein, und Ihre Felder (ihre Größe) müssen wirklich massiv sein - in einem solchen Fall kann es nützlich sein, diese Felder variabler Größe am Ende der Tabelle in Bezug auf die Reihenfolge der Spalten zu platzieren.

Aber noch einmal: Das ist eher ein seltener Randfall als die Norm.

Beachten Sie auch: SQL Server hat keine Möglichkeit, Spalten neu anzuordnen. Sie können dies im visuellen Tabellen-Designer tun - aber was SQL Server unter den Abdeckungen tut, ist eine neue Tabelle mit der gewünschten Spaltenreihenfolge zu erstellen, und dann werden alle Daten aus der alten Tabelle kopiert. Das ist der Grund, warum dies eine sehr langwierige und zeitraubende Operation für große Tabellen ist.

    
marc_s 15.12.2010 18:26
quelle

Tags und Links