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

Datenbank:Pipeline-Funktionen

Um aus "Ask Tom Oracle" zu zitieren:

Pipeline-Funktionen sind einfach "Code, den Sie vorgeben können, ist eine Datenbanktabelle"

Pipeline-Funktionen geben Ihnen die (für mich erstaunliche) Fähigkeit,

select * from PLSQL_FUNCTION;

Immer wenn Sie denken, dass Sie es verwenden können - um * aus einer Funktion anstelle einer Tabelle auszuwählen, könnte es "nützlich" sein.

Zu den Vorteilen:Ein großer Vorteil der Verwendung einer Pipeline-Funktion besteht darin, dass Ihre Funktion Zeilen einzeln zurückgeben kann, anstatt die gesamte Ergebnismenge als Ganzes im Speicher aufzubauen, bevor sie zurückgegeben wird.

Das Obige ergibt die offensichtliche Optimierung – Speichereinsparungen durch etwas, das sonst eine große Ergebnismenge zurückgeben würde.

Ein ziemlich interessantes Beispiel für die Verwendung von Pipeline-Funktionen finden Sie hier

Eine gute Verwendung scheint ETL (extract/transform/load) zu sein – siehe zum Beispiel hier