After data file copying, direct path is the fastest method of moving data. In this method, the SQL layer of the database is bypassed and rows are moved to and from the dump file with only minimal interpretation. Data Pump automatically uses the direct path method for loading and unloading data unless the structure of a table does not allow it. For example, if a table contains a column of type BFILE
, then direct path cannot be used to load that table and external tables is used instead.
The following sections describe situations in which direct path cannot be used for loading and unloading:
If any of the following conditions exist for a table, then Data Pump uses external tables rather than direct path to load the data for that table:
A domain index that is not a CONTEXT
type index exists for a LOB column.
A global index on multipartition tables exists during a single-partition load. This includes object tables that are partitioned.
A table is in a cluster.
There is an active trigger on a preexisting table.
Fine-grained access control is enabled in insert mode on a preexisting table.
A table contains BFILE
columns or columns of opaque types.
A referential integrity constraint is present on a preexisting table.
A table contains VARRAY
columns with an embedded opaque type.
The table has encrypted columns.
The table into which data is being imported is a preexisting table and at least one of the following conditions exists:
There is an active trigger
The table is partitioned
Fine-grained access control is in insert mode
A referential integrity constraint exists
A unique index exists
Supplemental logging is enabled and the table has at least one LOB column.
The Data Pump command for the specified table used the QUERY
, SAMPLE
, or REMAP_DATA
parameter.
A table contains a column (including a VARRAY
column) with a TIMESTAMP WITH TIME ZONE
data type and the version of the time zone data file is different between the export and import systems.
If any of the following conditions exist for a table, then Data Pump uses external tables rather than direct path to unload the data:
Fine-grained access control for SELECT
is enabled.
The table is a queue table.
The table contains one or more columns of type BFILE
or opaque, or an object type containing opaque columns.
The table contains encrypted columns.
The table contains a column of an evolved type that needs upgrading.
The table contains a column of type LONG
or LONG RAW
that is not last.
The Data Pump command for the specified table used the QUERY
, SAMPLE
, or REMAP_DATA
parameter.
Prior to the unload operation, the table was altered to contain a column that is NOT NULL and also has a default value specified.