欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle PipeLined方式究竟能提升多少性能

程序员文章站 2024-01-27 14:05:40
...

最近在使用到了Oracle的表函数,尤其是实现嵌套表的数据按表结构进行返回,发现PIPELINED方式,确实能让性能有非常高的提升。

最近在使用到了Oracle的表函数,尤其是实现嵌套表的数据按表结构进行返回,发现PIPELINED方式,确实能让性能有非常高的提升。

Oracle PipeLined:

看了相关的文章,大致是将数据进行按流水线方式进行处理,执行无等待,而不是那种传统的将本次数据全处理完了,,再送往下一个处理环节。

最近找了个时间,特意进行了一下测试。

结论:

1 表函数以嵌套表返回时,是非常耗时与耗内存的;

2 PIPELINED方式,能让数据无等待,效率非常高,尤其是应用在Oracle的表函数返回;

不受SQL语句类型的限制,都能有很好的性能提升,尤其是在大数据量的情况下:

1) select * from table(表函数())

2)还是select count(*) from table(表函数()) (本次过程不体现,但是实际应用使用中确实性能较非PIPELINED方式有非常高的性能提升)

3) 还是select * from table(表函数()) where conditions(本次过程不体现,但是应用中确实性能较非PIPELINED方式有非常高的性能提升)

下面来看具体步骤

1 创建两个辅助类型

CREATE OR REPLACE TYPE performance_e_v IS OBJECT
(
pid INTEGER ,
persionid VARCHAR2(40),
datefield DATE,
name VARCHAR2(40),
account VARCHAR2(20),
balance NUMBER,
securitycode VARCHAR2(60)
);
/
create or replace type performance_TABLE as table of performance_e_v;
/

Oracle PipeLined方式究竟能提升多少性能