视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
OraclePipeLined方式究竟能提升多少性能
2020-11-09 10:50:42 责编:小采
文档


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

下载本文
显示全文
专题