Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle View vs. Joining-Tabellen in Oracle

Normalerweise besteht kein Leistungsunterschied zwischen einer einzelnen Abfrage und einer logisch äquivalenten Abfrage, die Ansichten verwendet.

Oracle verfügt über Optimierungstransformationen, die Ansichten mit der äußeren Abfrage kombinieren können; Prädikat-Pushing, einfaches und komplexes Zusammenführen von Ansichten usw. Stellen Sie sich Ansichten eher wie ein Textmakro vor, das eine große Abfrage erstellt, anstatt einer Funktion, die Zeilen zurückgibt.

Beispielsweise wäre Oracle in der folgenden Abfrage wahrscheinlich schlau genug, um das Prädikat für die Primärschlüsselspalte in die Ansicht zu verschieben. Obwohl die Ansicht allein Millionen von Zeilen zurückgeben kann, wendet Oracle das Prädikat zuerst auf die Primärschlüsselspalte an, wenn die gesamte Abfrage ausgeführt wird.

select *
from view_returns_millions_of_rows
where primary_key_value = 1;