SOG-Helpcenter Logo SOG Business - Software

Was muss ich zur SQL-Sortierung wissen?


Über die die Angabe einer Sql-Sortierung (z.B. im ObjectSelector) kann die Auswahl der Daten beeinflusst werden. 
Neben der eigentlichen Sortierung der Daten, hat die Sortierung auf Sql-Ebene in Zusammenhang mit der Anzahl (Top-Einschränkung) der angezeigten Daten vorrangig eine inhaltliche Funktion.

Wird eine Anzahl von Daten festgelegt, dann bewirkt die Sql-Sortierung also, welche Daten überhaupt in der Ergebnismenge enthalten sind.

So können Sie zum Beispiel die 10 zuletzt geänderten Datensätze anzeigen, wenn Sie absteigend nach hhupd sortieren (hhupd desc) und eine Anzahl von 10 festlegen.

 
Hinweis: Ist keine Sql-Sortierung angegeben, werden die Daten in ActiveSkin immer nach ihrem Primärschlüssel (key_1 bzw. id) sortiert, sobald eine Anzahl eingeschränkt wurde.

 

Grundsätzlich gilt, dass die Reihenfolge der Datensätze ohne die Angabe einer Sortierung nicht vorhersehbar ist.

 

Wann sollte ich eine SQL-Sortierung verwenden und wann nicht?

 

Wie oben schon erwähnt, bewirkt die SQL-Sortierung in Kombination mit der Anzahl eine Vorauswahl der Daten, und genau dafür sollte sie im Idealfall verwendet werden.

Sofern Sie die Daten in der Oberfläche Anzeigen, können Sie dann dort über die Listenansicht die Sortierung erzielen.

Verwenden Sie SQL-Sortierung also nicht, wenn Sie die gleiche Möglichkeit über die Ansicht haben.

 

Technischer Hintergrund:

Dies ist eine allgemeine Empfehlung und im Regelfall der bessere Weg,
da dies ein komplexes Thema ist und die Sql-Sortierung auch die Nutzung des Indexes auf Sql-Serverseite beeinflussen kann.

Insgesamt ist es auch besser die CPU-Last des Sortierens auf die Clients zu verlagern, als den Sql-Server damit zu belasten.

 

Wieso sollte man eine Ansicht sortieren, obwohl bereits eine Sql-Sortierung definiert ist?

 

Die Kombination der beiden Sortierungen kann in vielen Fällen durchaus sinnvoll sein. Sollen Daten bereits auf eine Auswahl (Anzahl + Sql-Sortierung) eingeschränkt werden, wie oben in dem Beispiel, aber anders dargestellt?

Dann ist die Kombination der beiden Sortierungen zielführend.

Beispiel: Die 10 Vorgänge mit dem höchsten Bestellwert (SQL), sortiert nach dem Erfassungsdatum (Ansicht).

 

Grundsätzlich sollte die Sql-Sortierung nur verwendet werden, wenn sie wirklich notwendig ist bzw. ein Index vorliegt, um unter anderem auch die Last vom Sql-Server zu nehmen.

 

Was ist denn schneller?

 

Diese Frage kann nicht pauschal beantwortet werden, da sie von diversen Faktoren abhängt.

Das sind Faktoren wie:

  • Welche Spalte wird sortiert (Indizierung)

  • Serverauslastung

  • Clientauslastung

  • Wie viele Datensätze werden sortiert