There is no need to disable the foreign key. Direct-path inserts work with reference partitioning even though the documentation implies it should not.
The LOAD AS SELECT
operation below demonstrates that direct-path inserts are used:
explain plan for insert /*+ append */ into child_table select 1 from dual;
select * from table(dbms_xplan.display(format => 'basic'));
Plan hash value: 2781518217
--------------------------------------------------------
| Id | Operation | Name |
--------------------------------------------------------
| 0 | INSERT STATEMENT | |
| 1 | LOAD AS SELECT | CHILD_TABLE |
| 2 | OPTIMIZER STATISTICS GATHERING | |
| 3 | FAST DUAL | |
--------------------------------------------------------
If direct-path inserts do not work with reference-partitioning it is because of one of the many other restrictions, such as triggers, a different foreign key, deferrable constraints, etc.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…