Would it not be possible to set autocommit off in order to speed things up?
For the pl/sql loop, would something like "alter session disable commit in procedure" help?
Why not try it against 5 or 10 objects and see if the loop speeds up?
I don't know if you are running this in sqlplus or using some kind of db api calls; but you might want to try the other method and see if the speed is higher (eg if using sqlplus try via AOLserver/tcl, and vice versa).