Pipelined
funções, um exemplo muito clássico é onde você faz um SELECT * FROM table name
em SQL*Plus
. O que acontece é que o Oracle transmite os dados da tabela.
Como assistir a um vídeo no youtube.
Observe a palavra 'Streaming '.. E em nossa função definimos quantas linhas transmitimos.. Cada transmitida linha está imediatamente disponível para o chamador.
Pipelining
significa em termos leigos, não me faça esperar até que você complete, me dê o que você tem e continue me processando e me atualizando simultaneamente. Em seu último procedimento, depois de canalizar cada linha, você inicia um
sleep
chamada para 10s
, então o registro é Transmitido para o chamador a cada 10s. E, uma função de tabela normal continuará esperando até que todo o trabalho de processamento seja concluído e, em seguida, retornará a referência ao cursor do conjunto de resultados.
funções em pipeline , eles afirmam economizar memória, é
flushing
o conteúdo imediatamente e, portanto, o buffer usado é sempre mínimo, enquanto a contagem de viagens de ida e volta aumenta.