Sql Union (was Ist Schneller )

JManuel

Grünschnabel
Hallo ,

ich führe ein SQL UNION mit großen Datenmengen durch, und ich habe dazu zwei Alternativen, und ich weiss nun nicht , welche Methode schneller ist. Kann mir das einer sagen:

Ausgangspunkt :
2 gleiche Tabellen C, C2
1 Tabelle People
Ich möchte alle Results der Tabellen C und C2 und falls ID korrekt , zusätzlich die Werte der Tabelle People.

Methode 1: ( hier wird der JOIN seperat zu jeder Tabelle ausgeführt, und dann der UNION)

SELECT C.*, P.ID, P.Name
FROM People1 C
A LEFT OUTER JOIN COLOR C ON A.ID = P.ID
UNION
SELECT C2.*, PP.ID, PP.Name
FROM People2 C2
LEFT OUTER JOIN COLOR PP ON C2.ID = PP.ID

Methode 2: ( zuerst alle Tabellen mit UNION und dann der Join darauf )

SELECT AGG.*, P.ID, P.Name
FROM (
SELECT C.* FROM People C UNION SELECT C2.* FROM People2 C2
) AGG
LEFT OUTER JOIN CDIS.COLOR P ON AGG.ID = P.ID

Könnt ihr mir bitte auch sagen, wieso die eine Methode schneller ist als die andere, oder irre ich mich da, und beider Methode haben die selbe Ausfürhrungszeit ?


Danke,
-Manuel
 
Wie wäre es, wenn du es einfach ausprobierst. Oder sollen wir die Tests für dich durchführen. Außerdem wird das evtl. auch von der Datenbank abhängen, die du benutzt.
 
:) Hi,

sicher sollte ich es ausprobieren. Hab es auch gemacht und habe dabei keine Unterschiede feststellen können, was ich eher an einer Antwort gedacht habe ist viellleicht eine theoretische Antwort die erklärt, wieso beide gleich oder eine der Varianten schneller ist. Das DB-System ist DB2.

Meine Erklärung ist die folgende, bin mir aber nicht sicher: Die Variante 1 ist schneller, weil hier kein großer UNION in den Speicher abgelegt werden muss. Der Join wird auf eine kleinere Datenmenge ausgeführt und in die Ergebnissmenge zurückgeschrieben. Anschließend wird das nächste Teilstück nach dem UNION ausgeführt. Wie gesagt, ich bin überhaupt nicht fit in SQL und stelle daher diese Frage.

Danke,
JManuel
 
habe den Test noch einmal ausgefürht. der DB2 Zugriffsplan gibt bei Methode 1 geschätzte Kosten 157,11 timerons und bei Methode 2 geschätzte Kosten 105,11 timerons

nun noch eine Frage: Die Kosten sind für Methode 2 kleiner, bedeuted dies auch eine kürzere Ausführungszeit ?
 
Zurück