2016-07-06 5 views
1

Nehmen wir an, ich habe eine Tabelle mit einem dreispaltigen Primärschlüssel. Wenn ich wählen Sie alle aus dieser Tabelle ohne Reihenfolge von Klausel sind sie, nach meinem Verständnis, von diesen Spalten angeordnet. Die erste und innerhalb der zweiten Spalte und innerhalb der dritten.Leistung Kosten für die Verwendung von Primärschlüssel in Reihenfolge von

Gibt es zusätzliche Kosten oder vielleicht einen Leistungszuwachs, indem explizit eine order by-Klausel mit den drei Spalten in der Reihenfolge hinzugefügt wird, in der sie Teil des Primärschlüssels sind?

Antwort

2

Wenn ich alle aus dieser Tabelle ohne ORDER BY-Klausel wählen sie, auftreten, zu meinem Verständnis von diesen Spalten geordnet

Ihr Verständnis ist falsch. Ohne eine order by kann die Datenbank-Engine die Ergebnisse in beliebiger Reihenfolge ausgeben. Wenn Sie einen gruppierten Index zu einem anderen Feld hinzufügen, ändert sich wahrscheinlich die Reihenfolge des Ergebnisses.

Gibt es zusätzliche Kosten, oder vielleicht Performance-Gewinn

Es wird nie durch die Bestellung ein Performance-Gewinn sein (es sei denn, Sie etwas zu tun, dass effects branch prediction). Es wird keine Kosten geben, wenn die Datenbank so bestellen würde. Es kann jedoch ein Problem mit der Korrektheit geben, wenn Sie die Bestellung nicht angeben.

+0

Ahhh der kleine Speicher, den ich über einige implizite Regeln hatte, scheint gewesen zu sein, als eine Gruppe von verwendet wurde und keine explizite Reihenfolge durch. – inquam

Verwandte Themen