数据库:流水线功能

Rac*_*hel 5 mysql sql database oracle

我是管道功能概念的新手.我有一些问题

从数据库的角度来看:

  • 什么是管道功能?
  • 使用管道功能有什么好处?
  • 使用Pipeline Function解决了哪些挑战?
  • 使用管道功能有任何优化优势吗?

谢谢.

DVK*_*DVK 7

引用fom"Ask Tom Oracle":

流水线函数只是"你可以伪装成数据库表的代码"

流水线功能为您提供(令我惊讶的)能力

select * from PLSQL_FUNCTION;

任何时候你认为你可以使用它 - 从函数而不是表中选择*,它可能是"有用的".

就优点而言:使用Pipeline函数的一大优点是,您的函数可以逐个返回行,而不是在返回行之前在整个内存中构建整个结果集.

上面给出了明显的优化 - 从本来可以返回大结果集的东西中节省了内存.

这里有一个使用流水线函数的相当有趣的例子

看起来好用的是ETL(提取/转换/加载) - 例如见这里