If I execute some SQL statements over many transactions instead of just committing once after all statements, will this have an effect on the amount of redo log generated? And hence on the size of the archiving log directory?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
migrated from stackoverflow.com Jan 22 '12 at 16:57
This question came from our site for professional and enthusiast programmers.
Yes, it will.
1000 statements, each in its own transaction, will generate more redo than 1 transaction of 1000 statements. Transaction begin/end markers do require space in the redo and archive log.
Further, Oracle writes the redo log buffer to disk as it needs to; generally speaking, committing more than 3 times per seconds adds latency (due to serialized physical I/O required to flush the log buffer to disk) to the overall operation.