Oracle becomes too slow after system crash I am using Oracle 11.2 as a database for my application. For this purpose I should import my data (around 100m records) to this database. For this purpose I used SQL Developer. 

Unfortunately at the middle of the import process, my system crashed and forced me to reboot the system. After system boot up everything related to Oracle is strange:


starting up Oracle takes around 10 min (before system crash takes less than 10 sec)
SQL Developer takes too much time to connect to database
and the importing process becomes 10000 times slower!


Would you please tell me what happen and how can I fix that?

P.S: After passing 24 hours from the crash time a performance becomes better but still much less than before crash.
Several things might be going on here and might be difficult to pin down but here's a few things.

After Oracle crashes, it must do some type of recovery (as in media or crash recovery) to bring the database back to a consistent state.  Depending on what you were doing (and whatever else was going on in the instance at the time of the crash) transactions may need to be kept or rolled-back and this is done before the instance will open so you need to wait until it completes.

This should, however, only happen the first time you start the database after the crash.  If it happens every time afterwards, there may be something else going on. If your job needs to roll back data, depending on the amount of data, that too, can be a lengthy process which might be running while you are re-trying your operation and may slow down other operations. 

Also, since the database has crashed, you've lost any data cached in the db blocks buffers as well as anything in the shared pool, so any operations needing access to data may now have to go to disk and any shared SQL in the shared pool may need to be re-parsed, and so on and so forth.

Before re-trying your operation, check all your objects (as in tables, indexes, etc.). If you can, do a little testing - truncate the tables to be loaded (and remove any indexes, constraints, etc.) before you try to re-load, because you don't want to have to wait for rows to be deleted that you're just going to re-insert anyway or for indexes that might be corrupt and slowing down insert operations.

Lastly, instead of SQL Developer, you might want to try using SQL Loader or load in smaller increments in case there's some type of data causing the crash (SQL Loader will leave a "bad" file of data it could not load).

Also, what's your hardware setup? Are you running Oracle and SQL Developer on the same machine?  If so, since you're trying to load 100 million rows, try splitting the load.  If you are running SQL Developer from a PC, make sure you're not running out of PC resources - 100 million rows for Oracle is not a big deal, but it might for your PC.