oracle处理数据有哪些方法,Oracle 性能优化之 四种数据处理方式 说明

Oracle 数据库不同的数据处理方式与数据库的性能有着很大的关系。 目前Oracle 数据库有如下四种处理方式。

https://www.cndba.cn/dave/article/4361

处理少量数据时使用:

1.Row by row 逐行:

这种方式使用一个线程/进程,一次处理一行数据,适用于OLTP中很少量数据的处理。https://www.cndba.cn/dave/article/4361

https://www.cndba.cn/dave/article/4361https://www.cndba.cn/dave/article/4361

2.Arrays 数组:

这种方式也是使用一个线程/进程进行处理,但是一次处理一组数据,比row by row的效率要高很多,在OLTP场景中,能用Arrays方式就用arrays 的方法。

关于arrays的测试,在之前的博客有说明,参考:

Oracle arraysize 和 fetch size 参数 与 性能优化 说明

https://www.cndba.cn/Dave/article/1533

https://www.cndba.cn/dave/article/4361

在使用SQL*Plus实可以设置SET ARRAYSIZE,如果是Java应用,可以通过设置Connection.SetdefaultRowPrefetch(n)来实现。 https://www.cndba.cn/dave/article/4361

处理大量数据时使用:

3.Manual Parallelism 手动并行

该方法实施起来有点复杂,同时在多线程上平均分配工作负载也是个很大的挑战,而且多线程对数据库对象执行相同的操作时也可能出现争用问题。

4.Set based processing 基于集合的处理

该方法可以使用SQL 定义结果,是数据库里处理数据最高效的方法,在处理大量数据时,能用set based的方法就要用set based的方法。

1.它是按组或行集来处理数据。

2.使用SQL定义结果,让数据库决定怎么去执行。

3.以集合为单位,数据库可以高效的处理数据。 这种方式将数据直接在数据库内部处理,不需要在网络上进行移动,同时可以使用Hash joins、并行查询和DML,从而可以高效的处理数据。

https://www.cndba.cn/dave/article/4361https://www.cndba.cn/dave/article/4361

常见的set based 的SQL 操作如下:

create table as select

insert /*+ append */ select

intersect

minus

exists

not exists

windows functions

multi-table inserts

outer joins

Oracle 官方手册对set 操作也有说明,如下:

版权声明:本文为博主原创文章,未经博主允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值