Re: faster than SQLLOADER

From: John Gillespie <jgg_at_waldo.corte-madera.geoquest.slb.com>
Date: 4 Jan 1995 22:11:58 GMT
Message-ID: <3ef6fe$oq4_at_k2.San-Jose.ate.slb.com>


There are several thigs to consider:

  1. All programs between the data and the Oracle kernel use similar libraries when using SQL. SQL*Loader has access to privileged libraries, so it should be fastest of all;
  2. Cut out all network ties. Make sure SQL*Net is not in the loop. Don't use nfs. Make your cables as short as possible ;^);
  3. Make sure the data disk and the database disk are on separate devices; take advantage of asynchronous I/O if possible.
  4. Drop every index and/or constraint against the table being loaded (as has been pointed out in other threads, balancing indexes after every row is much more expensive than a single creation);
  5. Calculate the throughput of your disks, and don't ever expect loading to go faster than physically possible (if you figure 1 meg/second, then your 30 million records * 100 bytes = 1000 seconds or about 17 minutes for reading with no processing; if you have to read AND write, and there's no overlap, this means at least 34 minutes);
  6. You have redo logs, rollback segments, and commits to worry about unless the direct load SQL*Loader option is used.
  7. Try and have your data pre-sorted.

Hope this puts the original question in better perspective... Received on Wed Jan 04 1995 - 23:11:58 CET

Original text of this message