Hi All,
SQL> select * from v$version;
BANNER
-----------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
I am expecting direct path insert from my INSERT with APPEND hint. But thats not working.
Non of the tables involved are nologging, nor they have parallel mode enabled (code given below).
So, I am expecting, serial direct path insert, with logging.
SQL> select * from table( dbms_xplan.display_cursor('fb1hftqrnm9cy') ) ;
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------
SQL_ID fb1hftqrnm9cy, child number 0
-------------------------------------
INSERT /*+ APPEND */ INTO NEW_TABLE SELECT * FROM
OLD_TABLE WHERE PROCESS_DATE = :B1
Plan hash value: 3268711246
----------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | | | 588K(100)| |
| 1 | LOAD TABLE CONVENTIONAL | | | | | |
| 2 | TABLE ACCESS BY INDEX ROWID | OLD_TABLE | 6078K| 446M| 588K (1)| 01:57:44 |
| 3 | BITMAP CONVERSION TO ROWIDS| | | | | |
|* 4 | BITMAP INDEX SINGLE VALUE | OLD_TABLE_IDX1 | | | | |
----------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("PROCESS_DATE"=:B1)
Here, you can see the actual SQL (with APPEND hint) and the plan showing conventional loading.
The process here is, OLD_TABLE is a non-partitioned table with bitmap index on process_date column. NEW_TABLE is a partitioned table, with local index and foreign key (enabled). The insert command is inserting data for a given process_date to NEW_TABLE.
What am I missing here?
Thanks in advance.