几个名词解释

Interested Transaction List(ITL)

Transaction Slot  --通过initrans maxtrans参数可以控制

这两个东西存在于DATA BLOCK HEADER中

 

Transaction Table

Transaction Entry

这两个东西存在于UNDO SEGMENT HEADER中 个人理解Transaction Entry就是Transaction Table里的记录

 

 

以前还发过一个帖子问这几个东西到底什么意思 可是没人回答 囧…… 呵呵 最近看了些文章 个人理解就像上面那样

小记一下 也算是了了这么长时间没解决的一个问题了

 

明早火车去南京过10.1了 不知道到了那边还有没时间上论坛了 呵呵

 

================================添点内容========================================

 

每个块都有一个块首部。这个块首部中有一个事务表。事务表中会建立一些条目来描述哪些事务将块上的哪些行/元素锁定。这个事务表的初始大小由对象的INITRANS 设置指定。对于表,这个值默认为2(索引的INITRANS 也默认为2)。事务表会根据需要动态扩展,最大达到MAXTRANS 个条目(假设块上有足够的自由空间)。所分配的每个事务条目需要占用块首部中的23~24 字节的存储空间。注意,对于Oracle 10g,MAXTRANS 则会忽略,所有段的MAXTRANS 都是255。


也就是说,如果某个事物锁定了这个块的数据,则会在这个地方记录事务的标识,当然那个事务要先看一下这个地方是不是已经有人占用了,如果有,则去看看那个事务是否为活动状态。如果不活动,比如已经提交或者回滚,则可以覆盖这个地方。如果活动,则需要等待(闩的作用)。

 

所以,如果有大量的并发访问使用的这个块,则参数不能太小,否则资源竞争将导致系统并发性能下降。

 

在rollback undo 回退段中的数据是以“回退条目”方式存储。回退条目=块信息(在事务中发生改动的块的编号)+在事务提交前存储在块中的数据 在每一个回退段中oracle都为其维护一张“事务表” 在事务表中记录着与该回退段中所有回退条目相关的事务编号(事务SCN&回退条目)。

redo 重做记录由一组“变更向量”组成。每个变更变量中记录了事务对数据库中某个块所做的修改。当用户提交一条commit语句时,LGWR进程会立刻将一条提交记录写入到重做日志文件中,然后再开始写入与该事务相关的重做信息。 事务提交成功后,Oracle将为该事备生成一个系统变更码(SCN)。事务的SCN将同时记录在它的提交记录和重做记录中。

你可能感兴趣的:(几个名词解释)