oracle – 带引用分区的直接路径插入?

前端之家收集整理的这篇文章主要介绍了oracle – 带引用分区的直接路径插入?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何使用直接路径插入通过引用分区将数据快速加载到表中?直接路径插入不适用于启用的外键,并且无法禁用引用分区表的外键.
  1. sql> create table parent_table(a number primary key)
  2. 2 partition by range(a) (partition p1 values less than (1));
  3.  
  4. Table created.
  5.  
  6. sql> create table child_table(a number not null
  7. 2,constraint child_table_fk foreign key (a) references parent_table(a))
  8. 3 partition by reference (child_table_fk);
  9.  
  10. Table created.
  11.  
  12. sql> alter table child_table disable constraint child_table_fk;
  13. alter table child_table disable constraint child_table_fk
  14. *
  15. ERROR at line 1:
  16. ORA-14650: operation not supported for reference-partitioned tables
无需禁用外键.直接路径插入使用引用分区,即使 the documentation暗示它不应该.

下面的LOAD AS SELECT操作演示了使用直接路径插入:

  1. explain plan for insert /*+ append */ into child_table select 1 from dual;
  2.  
  3. select * from table(dbms_xplan.display(format => 'basic'));
  4.  
  5. Plan hash value: 2781518217
  6.  
  7. --------------------------------------------------------
  8. | Id | Operation | Name |
  9. --------------------------------------------------------
  10. | 0 | INSERT STATEMENT | |
  11. | 1 | LOAD AS SELECT | CHILD_TABLE |
  12. | 2 | OPTIMIZER STATISTICS GATHERING | |
  13. | 3 | FAST DUAL | |
  14. --------------------------------------------------------

如果直接路径插入不能与引用分区一起使用,那是因为许多其他限制之一,例如触发器,不同的外键,可延迟约束等.

猜你在找的Oracle相关文章