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

数据块头部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正是通过行目录找到所需的数据行。






分享到:
评论

相关推荐

    oracle ITL事务槽

    总的来说,Oracle的ITL事务槽是其并发控制和事务管理的核心机制之一。它有效地跟踪和管理事务状态,确保数据一致性,并通过各种策略减少资源冲突,从而提升系统的整体性能和可靠性。了解和掌握ITL的工作原理对于优化...

    Oracle中关于事务槽(ITL)

    Oracle的锁机制是轻量级的,它将锁信息直接存储在数据块头部,通过检查事务状态和SCN(系统改变号)来管理并发事务。 数据块dump的结果显示了诸如最后一次清洁操作的SCN、ITL的数量、事务ID、回滚段地址等详细信息...

    Oracle中关于事务槽(ITL).ppt

    主要针对oracle事务槽讲解。一本很经典的电子书。分享给大家

    【转】Oracle数据块深入分析总结

    在 Oracle 数据块中,ITL 事务槽是通过一个链表来实现的,每个事务槽都包含了事务的基本信息,如事务 ID、锁信息等。 三、dump 工具 dump 工具是 Oracle 数据库中用于分析数据块的重要工具。使用 dump 工具可以 ...

    Oracle数据块损坏知识.pdf

    事务层记录了在数据块上执行或执行过的事务信息,如系统更改号(SCN)、感兴趣的事务列表(ITL)、事务状态标志等。事务层中的信息包括事务ID(XID)、最后一次修改对应的Undo指针(UBA)、事务提交状态的Flag、锁定...

    BLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdf

    这种等待事件通常是由于大量的并发事务竞争同一个数据块内的ITL资源导致的。解决此类问题的关键在于理解ITL的工作原理,并通过合理的参数调整和优化SQL执行计划来减少ITL的竞争。此外,定期监控数据库性能并及时调整...

    浅谈Oracle常见错误处理

    ITL则是数据块中记录事务状态的列表。Oracle的ROWID格式也做了说明,它由8个字节组成,分别代表相对文件号、数据对象号、块号和槽号。 文档中还提到了如何将DBA(数据库地址)转换为文件号和块号。这是在发生错误时...

    【故障处理】队列等待之TX 等待事件处理.docx

    当出现TX - allocate ITL entry等待时,通常是因为并发事务量过大,导致ITL槽不足。以下是一些解决策略: 1. **增加块大小**:如果可能,增大表空间的块大小可以增加每个块中可用的ITL条目数量,从而减少竞争。 2....

    oracle索引说明[参照].pdf

    例如,`Itl`部分展示了与块相关的事务信息,包括槽ID、事务ID、撤销块地址、标记、锁信息和事务SCN。此外,我们还可以通过`DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(rba)`和`DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK...

    BLOG_Oracle_lhr_Oracle死锁的分类及其模拟.pdf

    Intent Lock List(ITL)是Oracle中用于存储事务锁定信息的数组,位于数据块中。每个数据行都有一个与之关联的ITL条目,用于记录事务对行的操作状态。当并发事务请求同一行的锁定时,ITL条目可能会成为死锁的源头。 ...

    Bug 9865890 ITL WASTING A LOT OF SPACE IN INDEXES

    Bug 9865890 ITL WASTING A LOT OF SPACE IN INDEXES

    Oracle.表与锁

    在数据块的存储结构方面,数据块由头部和可用空间组成,头部包含了Block Header和Data Block Header,其中ITL(Intent To Log)列表记录了当前持有块内数据锁的事务信息。Data Header则包含了表、记录数量以及可用...

    自动售货机ITL纸币器升级工具NV11新升级1112.rar

    纸币器连接电脑,纸币器原来的数据线拔下插入黑色头,数据线灰色的头插入纸币器。上电。3.找筷子按纸币器上面的红色小按钮,大约五秒钟左右,等入币口灯亮就松手,纸币器会重启 首次连接纸币器和电脑,需要安装驱动...

    对于Oracle锁的一些理论总结

    Oracle通过数据块(block)中的ITL(Intent To Lock)事务列表来记录事务对行的修改,每行的头部有一个Lock byte标识锁定状态。未提交的事务使用ITL的SLOT和Lock byte表示被封锁的行。此外,Oracle的行级锁实际上是...

    理解ORACLE数据库锁机制高效维护医院信息系统运行.pdf

    每个数据块都有一个称为ITL(Index Block Transaction List)的结构,用于存储事务对块内行的操作信息。当事务修改某行时,会在ITL中记录事务标识。例如,图1中,ITL的第一项标记了对第八行的锁定,第二项则表示对第...

    Oracle数据库锁的研究.pdf

    在Oracle数据库中,锁的实现是轻量级的,它将锁作为数据块的属性直接存储在数据块头部,这部分称为ITL(Intent To Lock),用于记录事务在数据块上的活动信息,以确保事务的一致性。Oracle数据库并不像某些系统那样...

    专题之Undo工作原理剖析

    通过上述信息,我们可以了解到SCOTT在修改数据之前的sal值为800,以及与之相关的槽号、事务号、回滚块地址等信息。 **查看修改后的Block信息:** 假设SCOTT对数据进行了更新操作,我们需要进一步分析修改后的Block...

    NIST (ANSI/NIST-ITL 1-2000) 库(适用于 Windows):读取和写入 ANSI/NIST-ITL 1-2000 格式的文件。-matlab开发

    ANSI/NIST-ITL 1-2000 是美国国家信息系统标准定义的指纹、面部、疤痕和纹身 (SMT) 信息交换的数据格式。 NIST 文件的优点是能够在一个文件中包含有关该人的多个图像和其他类型的数据,这简化了参与方之间的生物...

    ITL-ports:ITL的端口

    ITL(Interoperable Telemetry Language)是一种用于设备间数据传输和互操作性的标准化语言,主要应用于物联网(IoT)和远程监控系统。在“ITL-ports”这个主题中,我们将深入探讨ITL如何通过端口实现不同设备之间的...

    ITL9341_51驱动程序

    ITL9341_51驱动程序是一个针对特定单片机型号——ITL9341的编程组件,主要用于与C51编程语言相配合。在嵌入式系统开发中,驱动程序扮演着至关重要的角色,它们是操作系统与硬件设备之间的桥梁,允许软件应用程序控制...

Global site tag (gtag.js) - Google Analytics