Oracleはどうやって行の可視性を決定しているのでしょうか?たとえば行を挿入した時に、PostgreSQL同様挿入したトランザクションのxidを行に一緒に書いていると思うのですが、そのトランザクションが走行中なのか、すでにコミットしたのかはどこに書いてあるのでしょう?
Conversation
Replying to
As I understand it, there are "interesting transaction lists" (ITLs) in each block -- a fixed list of XIDs, along with a small amount of associated metadata for each. Both index blocks and heap blocks have ITLs.
2
3
Xact status information is probably retrieved from UNDO using that metadata. Secondary index deletes can have the space in the index reclaimed shortly after commit of the deleting xact, since the ghost bit is set by that xact. Space itself can be reclaimed as needed, I think.

