Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: would imp speed affect by setting indexes to NOLOGGING?

RE: would imp speed affect by setting indexes to NOLOGGING?

From: Kirtikumar Deshpande <>
Date: Tue, 27 May 2003 11:15:13 -0800
Message-ID: <>

In respone to someone's question about improving exp/imp speed I had posted the following quite some time ago. Most of it may help you.

This one is a rather long one.. Sorry..

Prepare scripts to build tables, indexes and constraints etc.. Prebuild the
tables in the target database. I am assuming that a database is already
created with all the tablespaces etc..

Improving Export performance:
1) Use direct=y. That will make the export process significantly faster.
2) Along with (1), setting 'recordlength' to multiples of db_block_size or
to its max value (65535) will help 'squeeze out' some more performance gain.
Although, this parameter is to be used when exporting/importing on different
OS where it has different default values, I use it for added performance
gain. You may want to give it a trial run to see if that would help.
3) I do not export indexes.

Improving Import Performance:
1) Keep database in no-archive log mode, if it is not already so.
2) Remember to use ignore=y since tables are already present.
3) Use commit=y to control rollback segment usage. 4) Do not import indexes by setting indexes=n (just to be sure).
5) Set buffer= to a high value, 5-10 MB should work fine (there is no
proportional gain performance in raising this value too high).
6) Set analyze=n to suppress automatic estimation of table statistics.
Analyze tables using your procedures after indexes etc are built.
7) For primary key constraint indexes, I keep the quota on the target
tablespace to 0 to make it fail during import. (something I just find easier
to remember).
8) Set log= to some log file name to capture all (good and bad) messages
from the import process.
9) After the import is completed, set sort_area_size, sort_area_retained_size to a higher value (whatever is adequate and
possible) to speed up index build process. Also, consider TEMPORARY type
temp tablespace with properly configured initial and next (multiples of
sort_area_size) extents. Make sure temp tablespace has ample room, should
index build processes perform disk sorts. Also, make sure quota is okay on
tablespaces for primary key constraint indexes. 10) Run all the index build scripts. Use nologging attribute and consider
building indexes in parallel, if resources are available to do so.
11) Enable all the constraints etc.
12) After all indexes are successfully built, make sure the sort parameters
are adjusted back to what they should be for running the db normally. Spot
check and make sure everything looks fine and okay. 13) Do not forget the SQL*Net thingy.. Make necessary changes to
global_name, TNSNAMES.ora and LISTENER.ora file. Bounce the listener.
14) Run your own procedures to analyze tables and indexes.
15) Take a cold back up.
16) Startup mount and change to archive log (if required). Open the db for
17) Time to hit the door..

Hope this helps...

Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
Please see the official ORACLE-L FAQ:
Author: Kirtikumar Deshpande

Fat City Network Services    -- 858-538-5051
San Diego, California        -- Mailing list and web hosting services
To REMOVE yourself from this mailing list, send an E-Mail message
to: (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Tue May 27 2003 - 14:15:13 CDT

Original text of this message