oracle sql 语句 并行,SQL中并行操作

本文详细介绍了Oracle数据库中的并行查询、DDL和DML操作。通过使用并行查询提示、设置会话参数以及对表和索引的操作,可以显著提升大数据量处理的效率。同时,提到了在进行并行DML操作时需要注意的事项,以及如何在sql*loader中配合使用并行选项。此外,还讨论了如何在并行加载过程中处理索引维护问题。
摘要由CSDN通过智能技术生成

--并行查询

select /*+parallel(t 4)*/ count(*) from user_tables t;

select /*+parallel(t 4)*/ count(*) from t where object_name in(select /*+parallel(t1 4)*/ object_name from t1);

--一个并行查询能够执行,需要满足下面其中一个:

a)sql语句中有hint提示,比如parallel或者parallel_index;

b)sql语句中引用的对象被设置了并行属性;

c)多表关联中至少有一个表执行全表扫描(full table scan)或者跨越分区的index range scan

d)在会话中执行:alter session force parallel query parallel 4;

--并行ddl操作:

create table t parallel 4 as select * from dba_objects;

alter table t move partition p1 parallel 4;

alter table t split partition p1 at(5000) into (partition p1,partition p2) parallel 4;

alter table t coalesce partition parallel 4;

create index t_ind on t(id) parallel 4;

alter index t_ind rebuild parallel 4;

alter index t_ind rebuild partition p1 parallel 4;

alter index t_ind split partition p1 at(5000) into (partition p11,partition p12) parallel 4;

--并行DML操作:

DML操作使用并行,必须显示地在会话里执行:

alter session enable parallel dml;

delete /*+ parallel(t 2)*/ from t;

update /*+ parallel(t 2)*/ t set name=name||'dcs';

merge /*+parallel(t 2)*/ into t using t1 on (t.id=t1.id) when matched then update set t.name=t1.name;

insert /*+parallel(t 4)*/ into t select /*+parallel(t1 4)*/ * from t1;

insert into t select /*+parallel(t1 4)*/ * from t1;

insert /*+parallel(t 4)*/ into t select * from t1;

insert /*+ append parallel(t,2)*/ into t select * from t;

--sql*loader和parallel:

--如果使用sqlloader的并行直接加载选项,并且表上有索引,将导致加载失败,可以调整参数:skip_index_maintenance=true,先把数据插入,在rebuild索引。

sqlldr userid=test/oracle control=t.ctl direct=true parallel=true skip_index_maintenance=true log=log.txt;

alter index t_ind rebuild parallel 4;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值