oracle Pipelined表功能能否比普通视图提高性能?

问题描述 投票:0回答:1

我有一个有点复杂的oracle视图,我用它来生成实时报告。由于导出表的所有行都是拉出来的,所以无论是通过索引还是分区,都没有什么改进的余地。

我想知道我是否可以使用流水线表功能来提高我的报表的性能。

我之所以想到这个问题,是因为我不清楚SQL到底是如何工作的。查询是否等待直到从表中获取所有的行,或者它的工作方式就像一个管道表函数的方式,只要从底层表中获取一行就会被处理。

oracle plsql view sqlperformance pipelined-function
1个回答
3
投票

一个SQL查询一旦有行就会返回。 根据优化器的查询计划,这可能是 "立即",也可能在收集记录和排序等过程中会有明显的延迟。

使用pipelined函数不能提高这种性能,因为pipelined函数必须首先从查询中获取一些数据回来,然后再开始用管道传送出去。 它从查询中获取数据的速度不会比你快。

© www.soinside.com 2019 - 2024. All rights reserved.