undo_retention 与 undo extent 的使用

本文介绍了Oracle数据库中Undo Retention参数的作用及其如何影响Undo块的状态转换,包括Active、Inactive、Expired和Freed四种状态。此外还详细阐述了在Automatic Undo Management (AUM)模式下,Oracle如何动态分配Undo空间。


Oracle为undo的管理提供了另一个参数:undo_retention。该参数以秒为单位,表示当
事务提交或回滚以后,该事务所使用的undo块里的数据需要保留多长时间;当保留的时
间超过undo_retention所指定的时间以后,该undo块才能够被其他事务覆盖。

 

当我们使用AUM,并设置了undo_retention以后,undo块就存在四种状态。
a. Active:表示正在使用该undo的事务还没有提交或回滚。
b. Inactive:表示该undo上没有活动的事务,该状态的undo可以被其他事务覆盖。
c. Expired:表示该undo持续inactive的时间超过undo_retention所指定的时间。
d. Freed:表示该undo块内容是空的,从来没有被使用过。

 

当活动的事务使用undo segment时,在AUM下,事务可以在不同的undo segment
之间动态交换undo空间(也就是extents),当一个执行的事务需要更多的undo空间
时,首先会重用当前undo segment里的可用空间,如果不足,则按照下面步骤获
取所需要的extent :
a. 获取undo表空间中可用的,空的extents;
b. 获取其他undo segment里的expired状态的extents;
c. 如果undo数据文件启用了自动扩展,则文件自动扩展;
d. 如果undo文件都没有启用自动扩展,则获取其他undo segment中inactive的;
e. 如果以上步骤均无法获得可用空间时,报空间不足的错误消息.


从这里可以看出,在AUM里,分配undo块的算法不仅有效,而且会尽可能地将INACTIVE
状态的extents保留足够长的时间。在Oracle10g里,如果undo表空间有足够的可用空间
,则Oracle会将undo信息保留的时间与当前运行时间最长的那个查询所需要的时间相同。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-669972/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-669972/

下载方式:https://pan.quark.cn/s/a4b39357ea24 布线问题(分支限界算法)是计算机科学和电子工程领域中一个广为人知的议题,它主要探讨如何在印刷电路板上定位两个节点间最短的连接路径。 在这一议题中,电路板被构建为一个包含 n×m 个方格的矩阵,每个方格能够被界定为可通行或不可通行,其核心任务是定位从初始点到最终点的最短路径。 分支限界算法是处理布线问题的一种常用策略。 该算法回溯法有相似之处,但存在差异,分支限界法仅需获取满足约束条件的一个最优路径,并按照广度优先或最小成本优先的原则来探索解空间树。 树 T 被构建为子集树或排列树,在探索过程中,每个节点仅被赋予一次成为扩展节点的机会,且会一次性生成其全部子节点。 针对布线问题的解决,队列式分支限界法可以被采用。 从起始位置 a 出发,将其设定为首个扩展节点,并将该扩展节点相邻且可通行的方格加入至活跃节点队列中,将这些方格标记为 1,即从起始方格 a 到这些方格的距离为 1。 随后,从活跃节点队列中提取队首节点作为下一个扩展节点,并将当前扩展节点相邻且未标记的方格标记为 2,随后将这些方格存入活跃节点队列。 这一过程将持续进行,直至算法探测到目标方格 b 或活跃节点队列为空。 在实现上述算法时,必须定义一个类 Position 来表征电路板上方格的位置,其成员 row 和 col 分别指示方格所在的行和列。 在方格位置上,布线能够沿右、下、左、上四个方向展开。 这四个方向的移动分别被记为 0、1、2、3。 下述表格中,offset[i].row 和 offset[i].col(i=0,1,2,3)分别提供了沿这四个方向前进 1 步相对于当前方格的相对位移。 在 Java 编程语言中,可以使用二维数组...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值