dlabdo,
interesting one this. I can see me coming unstuck under the watchful gaze of SantaMufasa if I'm not careful.
This is a combination high/low level question, IMHO.
First of all, doing single large commits is usually bad news for the undo tablespace. It has to record everything, until you do a commit. Now if it's just you, 10,000 changes will be peanuts, but what if 100 users simultaneously use the application?
You should normally keep work units as small as possible,so that undo is not onerous. Also, if an entry is posted ASAP, it makes it visible to other users, instead of disappearing down a black hole of uncommitted stuff. This means that your app is always as up to date as possible.
What if there's a screw up in mid-activity, you lose all 10,000 data? Therefore I suggest, commit ASAP, and do lots of small commits.
The "efficiency" is not really the issue here. You want reliable fast processing, not minimum RDBMS engine activity. If Oracle has to sweat a bit to meet performance criteria, then so be it.
Also, if you are using RMAN backups, it is possible to restore to a given SCN. If one change involves 10,000 records, and the cause of the problem is in there somewhere, how will you divide and conquer? If on the other hand, there are lots of small changes, you can restore to just before a particular one, and get as many good commits in as possible, before dud data causes a crash. It'll be easier to bug hunt in small quantities of data than one humungous block.
For what it's worth, my three hap'orth.
Regards
Tharg
Grinding away at things Oracular