Pipelined
funkcje, bardzo klasycznym przykładem jest wykonanie SELECT * FROM table name
w SQL*Plus
. Co się dzieje, Oracle przesyła dane z tabeli.
Jak oglądanie filmu na youtube.
Zwróć uwagę na słowo „Streaming „.. A w naszej funkcji definiujemy, ile wierszy przesyłamy strumieniowo.. Każdy przesyłany strumieniowo wiersz jest natychmiast dostępny dla dzwoniącego. Pipelining
oznacza w kategoriach laika, nie każ mi czekać, aż skończysz, daj mi to, co masz, i jednocześnie przetwarzaj i aktualizuj mnie.
W ostatniej procedurze, po wylaniu każdego wiersza, inicjujesz sleep
zadzwoń na 10s
, więc rekord jest przesyłany strumieniowo do dzwoniącego co 10 sekund.
A normalna funkcja tabelowa będzie czekać, aż cała praca zostanie wykonana, a następnie zwróci odniesienie do kursora zbioru wyników.
funkcje potokowe , które twierdzą, że oszczędzają pamięć, są przez flushing
zawartość natychmiast, a zatem używany bufor jest zawsze minimalny, podczas gdy liczba podróży w obie strony wzrasta.