C'è qualche differenza tra queste due prestazioni?UNION versus SELECT DISTINCT e UNION ALL Performance
-- eliminate duplicates using UNION
SELECT col1,col2,col3 FROM Table1
UNION SELECT col1,col2,col3 FROM Table2
UNION SELECT col1,col2,col3 FROM Table3
UNION SELECT col1,col2,col3 FROM Table4
UNION SELECT col1,col2,col3 FROM Table5
UNION SELECT col1,col2,col3 FROM Table6
UNION SELECT col1,col2,col3 FROM Table7
UNION SELECT col1,col2,col3 FROM Table8
-- eliminate duplicates using DISTINCT
SELECT DISTINCT * FROM
(
SELECT col1,col2,col3 FROM Table1
UNION ALL SELECT col1,col2,col3 FROM Table2
UNION ALL SELECT col1,col2,col3 FROM Table3
UNION ALL SELECT col1,col2,col3 FROM Table4
UNION ALL SELECT col1,col2,col3 FROM Table5
UNION ALL SELECT col1,col2,col3 FROM Table6
UNION ALL SELECT col1,col2,col3 FROM Table7
UNION ALL SELECT col1,col2,col3 FROM Table8
) x
Wrapping tutto in un "SELECT distict" crea una tabella temporanea che è (tipo di) costoso. A parte questo, non vedo perché DISTICNT ... UNION ALL sarebbe più veloce di (distinto) UNION – apokryfos
Entrambi mostrano diversi piani di esecuzione in alcuni casi, ma lo stesso in altri, e questa è una grande confusione ora. –
Mi farebbe affidamento su Query Optimizer per capire l'unione – Paparazzi