Moin,
wir hatten heute eine kleine Diskussion bezüglich Joins.
Es gibt ja sowohl die Möglichkeit, Joins über die Where- Klausel zu beschreiben, als auch den inner join befehl zu verwenden...
Hier mal ein Beispiel:
Das Ergebnis sollte ja in jedem Falle das gleiche sein oder?
Mir persönlich gefällt die erste Variante, also das Verknüpfen in der WHERE Klausel wesentlich besser, weil man finde ich rein von der Schreibweise her einfacher damit arbeiten kann und auf den ersten Blick die Verknüpfungen richtig erkennt.
Nun habe ich gehört, dass die zweite Variante gerade bei großen Datenmengen wesentlich performanter sein soll. Ist da denn nun etwas dran?
Ich dachte ein DBMS wie Oracle optimiert die SQL Statements ohnehin vor der Ausführung... Wird dann nicht quasi physikalisch das gleiche auf der DB veranstaltet?
Welche Variante bevorzugt ihr?
Danke und Gruß
Philipp
wir hatten heute eine kleine Diskussion bezüglich Joins.
Es gibt ja sowohl die Möglichkeit, Joins über die Where- Klausel zu beschreiben, als auch den inner join befehl zu verwenden...
Hier mal ein Beispiel:
Code:
-- Join über WHERE- Klausel SELECT k.name, sum(b.menge * p.preis) as Umsatz FROM Auftrag a, Kunde k, bestellung b, Pizza p WHERE a.Telefon = k.Telefon AND b.ANummer = a.Nummer AND b.PNummer = p.Nummer GROUP BY k.name; -- Join über Inner Join Befehl SELECT k.name, sum(b.menge * p.preis) as Umsatzs FROM Auftrag a inner join Kunde k on (a.Telefon = k.Telefon) inner join Bestellung b on (b.ANummer = a.nummer) inner join Pizza p on (b.PNummer = p.Nummer) group by k.name;
Das Ergebnis sollte ja in jedem Falle das gleiche sein oder?
Mir persönlich gefällt die erste Variante, also das Verknüpfen in der WHERE Klausel wesentlich besser, weil man finde ich rein von der Schreibweise her einfacher damit arbeiten kann und auf den ersten Blick die Verknüpfungen richtig erkennt.
Nun habe ich gehört, dass die zweite Variante gerade bei großen Datenmengen wesentlich performanter sein soll. Ist da denn nun etwas dran?
Ich dachte ein DBMS wie Oracle optimiert die SQL Statements ohnehin vor der Ausführung... Wird dann nicht quasi physikalisch das gleiche auf der DB veranstaltet?
Welche Variante bevorzugt ihr?
Danke und Gruß
Philipp
Comment