Unsortiertes Resultset trotz Clustered Index

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.

Noch kein Feedback
Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht auf dieser Seite angezeigt.
SchlechtExzellent
(Zeilenumbrüche werden zu <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)
Trackback-Adresse für diesen Eintrag
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)