`
coolsooner
  • 浏览: 1303218 次
文章分类
社区版块
存档分类
最新评论

数据块头部ITL事务槽结构浅谈

 
阅读更多
数据块作为ORACLE发出I/O的最小单位,结构由三部分组成。
由上至下为:1.数据块头部;
2.可用空间;
3.数据;(数据时从下往上增长的)


数据块头部:
1.数据块所属segment类型(数据或者索引)
2.数据块的地址;
3.ITL(Insterested Transaction List)槽,即事务槽;
4.行目录;


每当一个事务要更新数据块里的数据时,必须先得到一个ITL槽,然后将当前事务ID,事务所用的undo数据块地址,SCN号,当前事务是否提交等信息写到ITL槽里。
也就是说ITL槽包含信息: 1.事务ID;
2.事务所用UNDO块地址;
3.SCN号;
4.事务是否提交标记;


ITL槽的事务提交或回滚后,才可以被其他事务覆盖,当新事务发现不够ITL槽时,会动态创建一个新的ITL槽。
initrans:每个数据块默认ITL槽数目
maxtrans:每个数据块最多的ITL槽数


行目录(row directory)
这里记录了数据块里每一行相对于起点的偏移量,Oracle正是通过行目录找到所需的数据行。






分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics