热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracleblockcleanout说明-mysql教程

oracle有一个modifiedblocklist结构,用来记录每个transaction更改过的block,每个transaction大约可以记录10%buffercache这多

oracle有一个modified block list结构,用来记录每个transaction更改过的block,每个transaction大约可以记录10%buffer cache这多

一. Block Cleanout 说明

之前的相关测试参考:

Orace ITL(Interested Transaction List) 说明

OracleBlock scn/commit scn/cleanout scn 说明

block clean out 是指把一个块中的数据从 dirty 变为 clean,等于告诉后面的人,这个块里面的数据是干净的,可以放心的使用,本质上是更改 block header 中的一个标志位。

当commit 的时候,如果被commit 的数据块还在 data buffer 中也要被cleanout,因为 commit 的时候并不一定修改block header (delay block cleanout) 。

Clean out有2种: fast commitcleanout和delayed blockcleanout:

Oracle有一个modified block list结构,用来记录每个transaction更改过的block,每个transaction大约可以记录10%buffer cache这多的modified block。这部分block就是当发生commit的时候,oracle可以根据modified block list定位到那些块并做fast commit cleanout。

如果一个transaction修改的块超过10%buffer cache,那么超过的块就执行delayed block cleanout。当做fast commit cleanout时,oracle不会清理 Row lockslb标志位,ITL lck标志位。

另一种情况是delayed block cleanout,,当transaction还未commit或rollback时modified block已经被写回磁盘,当发生commit时oracle并不会把block重新读入做cleanout,这样成本太高.而是把cleanout留到下一次对此块的访问(select,update)时完成。

当delayed cleanout时候如果undo segment header的transaction table slot还没有被覆盖,那么可以找回该事务递交的exact scn,如果slot已经被覆盖(ITL被覆盖),那么将会使用undo segment header中的control scn来做为upper bound scn。

当发生fast commit cleanout,系统将transaction提交时刻的scn作为commit scn,更新block上 itl和undo segment header的Transaction table的slot上的 scn,并修改block scn,三者是一致的。

发生delayed block cleanout的时候,之前的transaction commit更新的只是undo segment header Transactiontable 上的slot scn,而并未做block上的更新,等待下次使用此block的时候,更新block scn和itl状态。block scn和itl的更新又分2种情况:

(1)当不产生slot重用的时候, delayedblock cleanout时,根据Transactiontable里面的信息,更新blockscn和itl上的Scn/Fsc为transaction曾经提交时候的scn。
(2)当产生slot重用的时候,更新对应itl上scn为undo segment 上的control scn,而block scn 为delayed block cleanout发生时刻的scn。

linux

推荐阅读
  • 本文对宋代著名诗人吕渭老的作品《情久长》进行了细致的翻译和赏析,深入探讨了诗中蕴含的情感与艺术特色。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • 最适合初学者的编程语言
    本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
  • 如何辨别华为手机的不同屏幕分辨率?
    了解华为手机屏幕分辨率的区别及其识别方法对于提升用户体验至关重要。本文将详细介绍如何通过手机设置中的显示选项来查看和区分不同型号华为手机的屏幕分辨率。 ... [详细]
  • 本文详细介绍了使用MAX7219芯片驱动单个8x8 LED点阵的仿真过程。MAX7219作为一款高效的LED显示驱动器,广泛应用于各种工业控制面板、商业广告牌及DIY项目中,能够显著提升显示效果。 ... [详细]
  • Unity美洲技术总监Carl Callewaert探讨游戏引擎与动作捕捉技术
    Carl Callewaert,现任Unity美洲区技术总监,以其幽默和专业著称,拥有超过十年的游戏开发及教育经验。在UNITE 2016 Shanghai会议中,他不仅展示了Unity引擎的先进特性和最新研究进展,还以其独特的即兴说唱技能给观众留下了深刻印象。 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • 本文对唐代诗人元稹的《月三十韵》进行了详尽的翻译与赏析,深入探讨了诗中的意境与艺术特色。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
  • 本文详细解析了MySQL中常见的几种错误,并提供了具体的解决方法,帮助开发者快速定位和解决问题。 ... [详细]
  • 项目经理的角色与职责解析
    本文探讨了项目经理的核心职责,结合个人项目管理和PMBOK指南的经验,深入分析了项目管理的基本概念及其与运维、战略规划之间的关系。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
author-avatar
民柱自由人士不只是剑客
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有