Ergebnis eines Joins deterministisch?

soso1500000

Neuer Benutzer
Beiträge
1
Hallo zusammen,

ich habe eine Frage bezüglich des Full Outer Joins. Wenn ich diesen mehrmals aufrufe, kann sich das Ergebnis bei gleichen Basisrelationen dann unterscheiden (SQL arbeitet ja schließlich auf Mengen(also ungeordnet)), oder kommt dabei immer eine Tabelle mit der gleichen Reihenfolge raus (in beiden Fällen natürlich mit den gleichen Tupeln)?

Vielen Dank im Voraus,

Soso
 
Werbung:
Die Reihenfolge eines Ergebnisses spielt keine Rolle, solange es keine ORDER BY - Definition gibt. In PG kann z.B. ein Select auf ein und dieselbe Tabelle von Mal zu Mal das Resultat in unterschiedlicher Reihenfolge liefern - und zwar dann, wenn weitere Clients dieselbe abfrage stellen. Ist eine Optimierung, nennt sich synchronized parallel scans. Angenommen, Client A fragt eine Tabelle mit 10 Millionen Rows ab. Kurz danach, A hat bereit sdie ersten 50 erhalten, fragt B dasselbe. B bekommt nun zeitgleich zu A die Datensätze ab 51 bis zum Ende, und erst zum Schluß die von 1 bis 50. Spart teures mehrfaches Lesen von Platte.

Also: solange kein ORDER BY, kann das Resultat wild sortiert sein. Das sind halt Mengen...
 
Werbung:
Wobei man auch sagen muss das solange sich die Tabelle nicht ändert und kein solcher Mechanismus greift sich die Reihenfolge effektiv auch nicht ändert. Verlassen sollte man sich darauf natürlich nicht.
 
Zurück
Oben