Base de datos: Funciones segmentadas

Soy nuevo en el concepto de funciones de canalización. Tengo algunas preguntas con respecto a

Desde el punto de vista de la database:

  • ¿Qué es en realidad la function Pipeline?
  • ¿Cuál es la ventaja de usar la function Pipeline?
  • ¿Qué desafíos se resuelven usando la function Pipeline?
  • ¿Hay alguna ventaja de optimization al usar la function Pipeline?

Gracias.

Para citar el fom "Ask Tom Oracle":

Las funciones segmentadas son simplemente "código que puede pretender que es una tabla de database"

las funciones segmentadas le dan la capacidad (asombrosa para mí) de

select * from PLSQL_FUNCTION;

cada vez que piense que puede usarlo: para seleccionar * de una function, en lugar de una tabla, podría ser "útil".

En cuanto a las ventajas: una gran ventaja de usar una function Pipeline es que su function puede devolver filas una por una en lugar de build todo el set de resultados en la memory como un todo antes de devolverlo.

Lo anterior da la optimization obvia – ahorros de memory de algo que de otra manera devolvería un gran set de resultados.

Un ejemplo bastante interesante del uso de funciones segmentadas está aquí

Lo que parece ser un buen uso de ellos es ETL (extraer / transformar / cargar); por ejemplo, ver aquí