2016-06-28 9 views
0

Ich möchte die Leistung optimieren, indem ich Abfragen für viele SAS-Datensätze mit denselben Metadaten zusammenführe. An diesem Punkt habe ich: select * from (wählen t1.column_a, t1.column_b aus der Tabelle t1) Union (wählen t2.column_a, t2.column_b aus der Tabelle t2) und so weiter. Jede Abfrage führt zu eindeutigen Zeilen. Spare ich Zeit, wenn ich stattdessen Union All verwende?Union vs. Union ALL, wenn Zeilen eindeutig sind

+1

Lassen Sie es und lassen Sie uns wissen, was Sie finden. – dfundako

+0

Was ist das korrekte ** Ergebnis **? Wenn * im Gegensatz zu Ihrer Behauptung * doppelte Ergebnisse sind, sollten sie in der Ergebnismenge enthalten sein? Das sollten deine gesamten Kriterien sein. –

Antwort

0

Irgendwann während der UNION wird es nach Duplikaten suchen. Selbst wenn diese Prüfungen falsch ausfallen, sind sie ein zusätzlicher Schritt. UNION ALL wird wahrscheinlich effizienter sein, aber wie dfundako darauf hingewiesen hat, müssen Sie testen und sicher sein, dass es einen Geschwindigkeitsunterschied gibt.

0

Ja. Du hast Recht. Bitte beziehen Sie sich darauf. What is the difference between UNION and UNION ALL?

Wenn Sie ziemlich sicher sind, dass Sie keine Duplikate haben, können Sie einfach UNION ALL anstelle von UNION verwenden. Die spätere Leistung fehlt, da es die Duplikate entfernen muss