Unsortiertes Resultset trotz Clustered Index

By Frank Kalis

Posted on Sep 11, 2010 von in SQL Server

Obwohl der Clustered Index in der Mehrzahl der Fälle ein korrekt sortiertes Resultset zurückgibt, gibt es keine Garantie hierfür. Wenn man ein SELECT Statement ohne explizites ORDER BY ausführt, versucht SQL Server die Daten in der schnellstmöglichen Sortierung zurückzugeben, was nicht unbedingt, die des Clustered Index ist.

Zum Beispiel können sich bereits Datapages im Speicher befinden, während andere erst geladen werden müssen. Die Seiten, die bereits im Speicher sind, werden zurückgegeben, bevor die Daten von der Festplatte gelesen werden.Ferner werden die Datapages nicht in der Sortierreihenfolge des Clustered Index auf der Festplatte gespeichert. Vielmehr unterhält SQL Server nur die sogenannte Page Chain, anhand derer SQL Server die Sortierreihenfolge bestimmt.Die einzig verlässliche Art und Weise, ein korrekt sortiertes Resultset zu erhalten, ist die Verwendung von ORDER BY. SQL Server ist hier in Übereinstimmung mit dem ANSI SQL Standard.

Tags: Tags:
Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: ,
Tags: ,

Noch kein Feedback


Formular wird geladen...