Writes to redo logs compared to writes to database files are much faster for two main reaons:

- Writes to redo logs are performed in "serial fashion", meaning that LGWR simply writes changes at the end of the redolog stream, ie where he ended previous write. So the physical location of where to perform writes is very fast, and once the writing starts it simply writes continuously, without the need to reposition disk heads. On the other hand, writes to database files are scattered all over the disk(s), as it must write each buffer to its very exactly specified disk location.

- The changes written to redo logs are much smaller in terms of written bytes, because only what actualy changed is written to the redo logs (changed vectors), while writes to datafiles are allways performed as full database block writes. For example, if you change one single byte in a record, onle very small amount of information (few bytes) will be written to the redo log file, while DBWR will need to write 16K of information to the database file (if your block size is 16K) as a result of the same change.