0

我有一个插入到选择查询中,例如:

INSERT /*+ append */ INTO  
select col1,col2...........  
from table1,table2(multiple table join) 

当我比较 prod 和 UAT 之间的计划时,我看到 UAT 在 4 DOP 中运行,但 prod 没有并行运行。

查询完全相同,并在表级别检查并行性,但 prod 和 UAT 中的 degree=1。

不确定并行运行的原因是什么?

我假设当我们在 /*+ append */ 内部使用时它会选择并行,但为什么它在 prod 中被忽略?

数据库:oracle11g

4

1 回答 1

0

只需执行

select * from table(dbms_xplan.display_cursor('<sql_id>', childnumber, format => '+NOTE ADVANCED ADAPTIVE');

Oracle 会告诉你,在最底部有 Note 部分:

Note
-----
   - Degree of Parallelism is 96 because of table property

可能有各种原因,例如存在 TRIGGERS 或 Oracle Text 索引。

于 2020-03-29T17:45:59.917 回答