Pipelined
velmi klasickým příkladem je, kde provedete SELECT * FROM table name
v SQL*Plus
. Stane se, že Oracle streamuje data z tabulky...
Jako sledování videa na youtube.
Všimněte si prosím slova „Streamování '.. A v naší funkci definujeme, kolik řádků streamujeme.. Každý streamovaný řádek je volajícímu okamžitě k dispozici. Pipelining
laicky řečeno, nenuťte mě čekat, až to dokončíte, dejte mi, co máte, a současně mě zpracovávat a aktualizovat.
Ve vaší poslední proceduře, po protažení každého řádku, spustíte sleep
volání po dobu 10s
, takže záznam je Streamován volajícímu každých 10 sekund.
A normální tabulková funkce bude čekat, dokud nebude dokončena veškerá zpracování, a poté vrátí odkaz na kurzor sady výsledků.
zřetězené funkce, o kterých tvrdí, že šetří paměť, jsou pomocí flushing
obsah okamžitě, a proto je použitý buffer vždy minimální, zatímco počet zpátečních cest se zvyšuje.