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
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