Frage

Ich muss eine ausgewählte Anweisung über mehrere Tabellen ausführen. Ich bin sicher, dass die Tabellen verschiedene Datensätze zurückgeben. Ich benutze sowieso Union All.

Ist es besser, Union oder Union in Leistungsbedingungen zu verwenden, wenn ich sicher bin, dass die Tabellen verschiedene Datensätze zurückgeben?

War es hilfreich?

Lösung

Union alle werden besser abschneiden als Gewerkschaft, wenn Sie nicht besorgt sind, doppelte Aufzeichnungen zu beseitigen eindeutige Art Betrieb. Sehen: SQL Server - Unterschied zwischen Union vs. Union All - Optimaler Leistungsvergleich

Andere Tipps

Union ist immer schneller, da Union doppelte Einträge ausschließt

Union implementieren intern zwei Abfragen. 1.SELECT Dies gibt einen Datensatz 2 zurück.DISTINCT. Jeder, der Datenbank -Interna studiert hat, kann leicht verstehen, dass a DISTINCT Die Klausel ist in Bezug auf die Verarbeitung äußerst kostspielig.

Wenn Sie sich ziemlich sicher sind, dass der resultierende Datensatz keine eindeutigen Zeilen haben muss, können wir überspringen UNION und verwenden UNION ALL stattdessen.

UNION ALL wird gleich sein wie UNION außer dass es nicht feuert a DISTINCT intern kostspielige Operationen in den USA erspart

Es ist besser, Union alle zu verwenden, wenn Sie wissen, dass Sie alle Ergebniszeilen wollen, ob Sie wissen, dass sie unterschiedlich sind oder nicht. Union ohne "alles" wird stets Führen Sie die "besondere Überprüfung" durch, unabhängig davon, was die Daten tatsächlich sind.

Warum ist Union alles schneller? Weil Union eine Sortierung durchführen muss, um die Duplikate zu entfernen. Wenn Sie keine Duplikate entfernen müssen, ist die Gewerkschaft alle die bessere Option, aber Union hat einen Zweck und sollte gegebenenfalls verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top