Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Diferença entre função de tabela e função de pipeline?


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.