Pipelined
funktioner, er et meget klassisk eksempel, hvor du laver et SELECT * FROM table name
i SQL*Plus
. Det, der sker, er, at Oracle streamer dataene fra tabellen.
Som at se en video på YouTube.
Bemærk venligst ordet 'Streaming '.. Og i vores funktion definerer vi, hvor mange rækker vi streamer.. Hver streamet række er umiddelbart tilgængelig for den, der ringer op. Pipelining
betyder i lægmandsforstand, lad mig ikke vente, indtil du er færdig, giv mig hvad du nogensinde har, og fortsæt med at behandle og opdatere mig samtidigt.
I din sidste procedure starter du en sleep
efter at have overført hver række ring til 10s
, så posten er Streamet til den, der ringer hver 10. s.
Og en normal tabelfunktion vil blive ved med at vente, indtil alt bearbejdningsarbejde er udført, og derefter vil den returnere referencen til resultatsætmarkøren.
pipelinede funktioner, de hævder at spare hukommelse, er ved at flushing
indholdet med det samme, og derfor er den anvendte buffer altid minimal, hvorimod antallet af rundrejser bliver højere.