Thursday, 18 February 2016

How expdp is faster than exp, what oracle internally change to speed up datapump?

Data pump is block mode and exp is a byte mode. So, block mode is always faster than the byte mode

ORACLE Export (exp) vs Datapump (expdp)

ORACLE provides two external utilities to transfer database objects from one database to another database. Traditional exports (exp /imp) are introduced before 10g. Then from 10g, ORACLE introduced datapump (expdp / impdp) as an enhancement to traditional export utility.


Traditional Export (exp/ imp)

This is an ORACLE database external utility, which is used to transfer database objects from one database server to another database server. It allows transferring the database objects over different platforms, different hardware and software configurations. When an export command is executed on a database, database objects are extracted with their dependency objects. That means if it extracts a table, the dependences like indexes, comments, and grants are extracted and written into an export file (binary format dump file). Following is the command to export a full database,

Cmd > exp userid=username/password@exportdb_tns file=export.dmp log=export.log full=y statistics=none

The above command will be exported the database to a binary dump file named export.dmp. Then imp utility can be used to import this data to another database. Following is the command to import,

Cmd > imp userid=username/password@importdb_tns file=export.dmp log=import.log full=y statistics=none

Datapump Export (expdp/ impdp)

This is also an ORACLE database external utility, which is used to transfer objects between databases. This utility is coming from ORACLE 10g database. It has more enhancements than the traditional exp/ imp utilities. This utility also makes dump files, which are in binary formats with database objects, object metadata and their control information. The expdp and impdp commands can be executed in three ways,

Command line interface (specify expdp/impdp parameters in command line)
Parameter file interface (specify expdp/impdp parameters in a separate file)
Interactive-command interface (entering various commands in export prompt)

There are five different modes of data unloading using expdp. They are,

Full Export Mode (entire database is unloaded)
Schema Mode (this is the default mode, specific schemas are unloaded)
Table Mode (specified set of tables and their dependent objects are unloaded)
Tablespace Mode (the tables in the specified tablespace are unloaded)
Transportable Tablespace Mode (only the metadata for the tables and their dependent objects within a specified set of tablespaces are unloaded)

Following is the way to export a full database using expdp,

Cmd > expdp userid=username/password dumpfile=expdp_export.dmp logfile=expdp_export.log full=y directory=export

Then impdp utility should be used to import this file to another database.



What is the difference between Traditional Export and Datapump?

• Datapump operates on a group of files called dump file sets. However, normal export operates on a single file.

• Datapump access files in the server (using ORACLE directories). Traditional export can access files in client and server both (not using ORACLE directories).

• Exports (exp/imp) represent database metadata information as DDLs in the dump file, but in datapump, it represents in XML document format.

• Datapump has parallel execution but in exp/imp single stream execution.

• Datapump does not support sequential media like tapes, but traditional export supports.

Data Pump Export and Import operations are processed in the database as a Data Pump job,
which is much more efficient that the client-side execution of original Export and Import. 

Data Pump operations can take advantage of the server’s parallel processes to read or
write multiple data streams simultaneously.

Data Pump differs from original Export and Import in that all jobs run primarily on the server
using server processes. These server processes access files for the Data Pump jobs using
directory objects that identify the location of the files. The directory objects enforce a security
model that can be used by DBAs to control access to these files.

Datapump has a very powerful interactive command-line mode which allows the user to 
monitor and control Data Pump Export and Import operations.Datapump allows you to disconnect 
and reconnect to the session

Because Data Pump jobs run entirely on the server, you can start an
export or import job, detach from it, and later reconnect to the job to monitor its progress.

Data Pump gives you the ability to pass data between two databases over a network (via a
database link), without creating a dump file on disk. 

Datapump uses the Direct Path data access method (which permits the server to bypass SQL and go right to
the data blocks on disk) has been rewritten to be much more efficient and now supports Data
Pump Import and Export.

Original Export is being deprecated with the Oracle Database 11g.

No comments:

Post a Comment