To get the maximum performance of Oracle SQL Loader (sqlldr), take the following into account.
Use fixed width column text file such as following.
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Then specify the column position for each column in the SQL Loader control file.
DEPTNO POSITION(1:2) CHAR(2),
DNAME POSITION(4:14) CHAR(14),
LOC POSITION(17:25) CHAR(13)
And remove the indexes on target table first, after the data load, recreate the indexes. Using the "DIRECT" and "PARALLEL" options. Increase the read size and bind size when loading. Also specify the commit batch size with "rows" option. Following is the default setting by ociuldr utility.
OPTIONS(BINDSIZE=8388608,READSIZE=8388608,ERRORS=-1,ROWS=50000)
And of cause, the network speed is very important, so perform loading on server usually get better performance.
