Well my environment is Windowds/jdk 1.5/Oracle 8i.
Performance differences between OS probably exist, but when I mentioned environment I was more interested in memory, number/speed of processors, how your RDMBS is configured (character sets, indices, triggers etc.), if there is a network involved (and how fast it is if there is) etc. My point was the sort of question you asked:
Want to know what will be the time taken by a fast application to insert 2.5 million records in an Oracle 8i table having 30 fields.
is pretty much unanswerable by anyone but yourself.
Test it and see. My point that SQL Loader is the quickest way I know to get data into Oracle, so if you want to know how your own application performs, compare it against the same data being loaded by SQL Loader.
A cursory glance suggests both those links seem to be talking about performance of bulk inserts via Java and PL/SQL, so they are pretty much in the same area as our discussion. Not sure how useful the Java programs are for your case though, since they perform all inserts within a single transaction. 2.5 million inserts in one transaction is going to be slow (since Oracle will need to keep track to what it has to potentially roll back). However, neither compare against SQL Loader.
The interesting line is right at the top of the PL/SQL article:
The intention was not to show how to load the maximum number of rows in the minimum amount of time (eg. using parallel loads etc.)
so I don't think its what you are looking for. And again "parallel loads" will probably mean SQL Loader (or a bespoke equivalent application, if you could be bothered writing it).
In my experience the only reason I'd write my own bulk loading application is if I needed to apply business rules to the data that cannot be easily done with SQL Loader. For example, if a "valid" record cannot be represented by DB constraints alone, I'd add some validation in my own loading app.
[ March 03, 2006: Message edited by: Paul Sturrock ]