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

WBOY
发布: 2016-06-07 17:27:57
原创
1222 人浏览过

最近在使用到了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;
/

linux

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板