一、并行(parallel)
当一个sql返回的结果集非常大时,可以开启并行机制。
并行处理的机制是:把一个要扫描的数据集分成很多小的数据集,oracle会启动几个并行服务进程同时处理这些小数据集,最后将结果汇总,作为最终的处理结果返回给用户。
并行处理的注意点:1、并行查询可以在查询语句,子查询语句中使用,但是不可以使用在一个远程引用的对象上(如DBLink)。
parallel DML(并行dml操作,如insert、update、delete等)
oracle可以对dml操作使用进行并行操作。单若是需要让并行dml操作,必须在会话里执行如下命令:
SQL>alter session enable parallel dml;
insert的并行操作:
Insert /*+parallel(t 2) */ into t select /*+parallel(t1 2) */ * from t1;
如上sql语句中,可以让两个操作insert和select分别使用并行,且两个并行是相互独立的,互补干涉的,也可以让单独其中的一个并行。如下:
Insert into t select /*+parallel(t1 2) */ * from t1;
Insert /*+parallel(t 2) */ into t select * from t1;
当一个sql返回的结果集非常大时,可以开启并行机制。
并行处理的机制是:把一个要扫描的数据集分成很多小的数据集,oracle会启动几个并行服务进程同时处理这些小数据集,最后将结果汇总,作为最终的处理结果返回给用户。
并行处理的注意点:1、并行查询可以在查询语句,子查询语句中使用,但是不可以使用在一个远程引用的对象上(如DBLink)。
parallel DML(并行dml操作,如insert、update、delete等)
oracle可以对dml操作使用进行并行操作。单若是需要让并行dml操作,必须在会话里执行如下命令:
SQL>alter session enable parallel dml;
insert的并行操作:
Insert /*+parallel(t 2) */ into t select /*+parallel(t1 2) */ * from t1;
如上sql语句中,可以让两个操作insert和select分别使用并行,且两个并行是相互独立的,互补干涉的,也可以让单独其中的一个并行。如下:
Insert into t select /*+parallel(t1 2) */ * from t1;
Insert /*+parallel(t 2) */ into t select * from t1;