Oracle:没有并行属性的表上是否可以进行并行DML操作?

时间:2016-05-23 22:38:55

标签: sql database oracle parallel-processing

我想知道我们是否可以在不是使用并行查询创建的表上运行并行更新/删除/插入。

前:

创建表格折扣( sales_rep_id号码, 折扣号码, performance_indicator号码 )tablespace commt;

(注意上面的ddl查询中缺少parallel关键字)

现在可以使用以下并行提示更新上表吗?

更新/ * + PARALLEL(折扣)* / 折扣设置performance_indicator = 50折扣< 30;

1 个答案:

答案 0 :(得分:2)

是的,并行DML可以针对使用NOPARALLEL(默认并行设置)创建的表运行。

表级设置仅为方便起见,通常应使用并行处理的表。 SQL提示可以覆盖该设置。

但是会话需要首先运行:

alter session enable parallel dml;

我建议你使用语句级并行而不是对象级并行。这使得语句中的所有内容都使用相同的DOP运行。一般来说,如果声明的一部分使用并行性,那么它们都应该。只需从查询中删除对象名称,Oracle就会为整个语句设置DOP:

update /*+ parallel */ discount ...