原文地址:Oracle Internal之Block Cleanout 1
作者:顾问
为什么会有Block Cleanouts? Oracle server在执行一个交易(transaction)时会保存交易数据在数据块(data block)本身,并且一个交易有可能修改大量的数据块,因此交易需要清理这些在数据块自己上的交易数据当一个交易完成commit。
那些东西需要cleaned out?
1. Row Locks
2. ITL Entry:
- Commit flags
- Free Space Credit/Commit SCN
Deferred Block Cleanout:
A transaction commit was a simple update to the relevant undo segment header.
The data block cleanout was left to the next reader of the modified block
Fast Block Cleanout: This is the default action.
Modified blocks are 'memorized' by a transaction. On transaction commit, cleanout is attempted
on those blocks in memory(up to a limit 20 blocks). For any blocks above this threshold, or
aged out of memory, or currently pinned by another process deferred block cleanout will be
still used.
那些东西需要cleaned out?
Deferred Block Cleanout:
Fast Block Cleanout: This is the default action.