预言机:是否可以在没有并行属性的表上进行并行 DML 操作



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

前任:

创建表折扣(sales_rep_id数,折扣数,performance_indicator编号) 表空间提交;

(注意上面的DDL查询中没有并行关键字)

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

更新/*+ 并行(折扣) */折扣集 performance_indicator = 50,其中折扣<30 ;

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

级设置只是为了方便起见,适用于通常应并行处理的表。 该设置可以被 SQL 提示覆盖。

但会话需要先运行以下命令:

alter session enable parallel dml;

我建议您使用语句级并行性而不是对象级并行性。 这使得语句中的所有内容都使用相同的 DOP 运行。 通常,如果语句的一部分使用并行性,则它们都应该使用并行性。 只需从查询中删除对象名称,Oracle 将为整个语句设置 DOP:

update /*+ parallel */ discount ...

最新更新