最近在使用到了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;
/
MySQL 5.6 新增的两个密码安全策略体验MySQL主从库认识相关资讯 Oracle性能 Oracle PipeLined
- Oracle性能诊断艺术 中文清晰PDF (06/26/2014 17:51:55)
- Linux HugePages 配置 与 Oracle (01/24/2013 10:11:09)
| - 物化视图定义不当引发Oracle性能问 (02/22/2014 20:40:09)
|
本文评论 查看全部评论 (0)