PL / SQL中的Pipilened vs table类型返回函数

时间:2015-02-12 18:46:04

标签: function optimization plsql

pipilened PL / SQL函数的优点和缺点也比没有pileile的函数和返回类型"表" (记录集)。如果可能,请举例说明情况?

1 个答案:

答案 0 :(得分:0)

我想通过流水线功能,您的功能可以创建无限/无限的结果集。例如,函数可以返回自然数或Fibonacci序列。在查询中使用它时,您可以添加where rownum < 100以将输出限制为您实际需要的长度。

另一个实际上更重要的区别是,如果您不使用PIPELINED表函数,则必须在使用之前计算完整的结果集。 如果计算结果缓慢/昂贵,这可能非常重要。 通常,用户只想查看前N行(这就是FIRST_ROWS优化器模式存在的原因)。 换句话说,只有PIPELINED表函数支持FIRST_ROWS,因为结果仅在需要时计算。

将此与在互联网上查找内容进行比较:大多数情况下,您会在结果集的第一页上找到有趣的链接,而您对随后的数百万次点击不感兴趣。