Why doesn't Oracle write the blocks directly into the database after changes? This question is relatively easy to answer. The main reason is that it is faster to write the data to a permanent storage medium. If you look at the redo log files, you can see that they are written sequentially from start to finish. Due to their structure, these files are optimized for writing. The hard disk's read/write head does not have to constantly reposition itself in order to write a data change. In addition, these files are small in comparison to the database, which speeds up continuous writing.
Another reason is the amount of data that has to be written to the redo log files when data is processed. If a record is changed within a block, the entire block is afghanistan telegram screening transferred back to the database. So if the record change is small in relation to the block, the amount that has to be written back is still the entire block. For example, if 10 records were changed in different blocks, the total change size of which may only be 100 bytes, ten times the block size still has to be written back.
By default, the redo log files do not log entire blocks, but only the changes to the blocks. As already described in the previous paragraph, the amount of data associated with this is of course many times smaller than that of all the blocks in which the changes were made. Only at a checkpoint are all the changed blocks transferred to the database, so that the read/write heads can write the blocks away in one overall process; this is faster than if the blocks were written individually straight away.