Oracle从8i开始引入了检查点队列这么一种概念,用于记录数据库里面当前所有的脏数据块的信息,DBWR根据这个队列而将脏数据块写入到数据文件中。检查点队列按时间先后记录着数据库里面脏数据块的信息,里面的条目包含RBA(Redo Block Address,重做日志里面用于标识检查点期间数据块在重做日志里面第一次发生更改的编号)和数据块的数据文件号和块号。在检查点期间不论数据块更改几次,它在检查点队列里面的位置始终保持不变,检查点队列也只会记录它最早的RBA,从而保证最早更改的数据块能够尽快写入。当DBWR将检查点队列里面的脏数据块写入到数据文件后,检查点的位置也要相应地往后移,CKPT每三秒会在控制文件中记录检查点的位置,以表示Instance Recovery时开始恢复的日志条目,这个概念称为检查点的“心跳”(heartbeat)。检查点位置发生变更后,Oracle里面通过4个参数用于控制检查点位置和最后的重做日志条目之间的距离。在这里面需要指出的是,多数人会将这4个参数看作控制增量检查点发生的时间。事实上这是错误的,这4个参数是用于控制检查点队列里面的条目数量,而不是控制检查点的发生。

(1、)fast_start_io_target

该参数用于表示数据库发生Instance Recovery的时候需要产生的IO总数,它通过v$filestat的AVGIOTIM来估算的。比如我们一个数据库在发生Instance Crash后需要在10分钟内恢复完毕,假定OS的IO每秒为500个,那么这个数据库发生Instance Recovery的时候大概将产生500*10*60=30,000次IO,也就是我们将可以把fast_start_io_target设置为 30000。

(2、)fast_start_mttr_target

我们从上面可以看到fast_start_io_target来估算检查点位置比较麻烦。Oracle为了简化这个概念,从9i开始引入了 fast_start_mttr_target这么一个参数,用于表示数据库发生Instance Recovery的时间,以秒为单位。这个参数我们从字面上也比较好理解,其中的mttr是mean time to recovery的简写,如上例中的情况我们可以将fast_start_mttr_target设置为600。当设置了 fast_start_mttr_target后,fast_start_io_target这个参数将不再生效,从9i后 fast_start_io_target这个参数被Oracle废除了。

(3、)log_checkpoint_timeout

该参数用于表示检查点位置和重做日志文件末尾之间的时间间隔,以秒为单位,默认情况下是1800秒。

(4、)log_checkpoint_interval

该参数是表示检查点位置和重做日志末尾的重做日志块的数量,以OS块表示。

(5、)90% OF SMALLEST REDO LOG

除了以上4个初始化参数外,Oracle内部事实上还将重做日志文件末尾前面90%的位置设为检查点位置。在每个重做日志中,这么几个参数指定的位置可能不尽相同,Oracle将离日志文件末尾最近的那个位置确认为检查点位置。
                                                                                                                                                                                                                              from ITPUB http://www.itpub.net/thread-1341844-2-1.html

【性能优化】增量检查点相关推荐

  1. 数据仓库的 RDBMS 性能优化指南

    转:http://www.microsoft.com/china/technet/prodtechnol/sql/2000/maintain/c2061.asp 数据仓库的 RDBMS 性能优化指南 ...

  2. redolog switch会发生完全检查点还是增量检查点?

    网上有很多资料都没有说清楚发生log switch的时候,到底完全检查点还是增量检查点.有人说是完全检查点,也有人说是增 量检查点.其实如果你深入了解完全检查点和增量检查点的的区别,就应该知道log ...

  3. [架构之路-171]-《软考-系统分析师》-5-数据库系统-4- 数 据 库 的 控 制 功 能(并发控制、性能优化)

    目录 5 . 4 数 据 库 的 控 制 功 能 5.4.1 并发控制 1 . 事务的基本概念 2 . 数据不一致问题 3 . 封锁协议 4 . 死锁问题 5.4.2 数据库性能优化 1 . 硬件升级 ...

  4. JAVA之JVM GC 机制与性能优化

    1 背景介绍 与C/C++相比,JAVA并不要求我们去人为编写代码进行内存回收和垃圾清理.JAVA提供了垃圾回收器(garbage collector)来自动检测对象的作用域),可自动把不再被使用的存 ...

  5. 手机淘宝 521 性能优化项目揭秘

    http://www.infoq.com/cn/articles/mobile-taobao-521-performance-optimization-project 又是一年双十一,亿万用户都会在这 ...

  6. 让Elasticsearch飞起来!——性能优化实践干货

    让Elasticsearch飞起来!--性能优化实践干货 2018年12月19日 23:01:39 铭毅天下(公众号同名) 阅读数:8805更多 所属专栏: 深入详解Elasticsearch 版权声 ...

  7. 天猫11.11:手机淘宝 521 性能优化项目揭秘

    又是一年双十一,亿万用户都会在这一天打开手机淘宝,高兴地在会场页面不断浏览,面对琳琅满目的商品图片,抢着添加购物车,下单付款.为了让用户 更顺畅更方便地实现这一切,做到"如丝般顺滑" ...

  8. Java虚拟机:常见JVM参数配置和GC性能优化

    一.常见的JVM参数配置: 1.垃圾回收统计信息: -XX:+PrintGC     打印GC简要信息 -XX:+PrintGCDetails打印GC的详细信息 -XX:+PrintGCTimeSta ...

  9. mysql笔记03 查询性能优化

    查询性能优化 1. 为什么查询速度会慢? 1). 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减 ...

  10. 高性能MySQL-3rd-(六)查询性能优化

    2019独角兽企业重金招聘Python工程师标准>>> /* * -------------------------------------------------------- * ...

最新文章

  1. matlab GUI figure置右上角
  2. bluePen – 使用在线 CSS 编辑器美化你的网站
  3. MAVEN 私有仓库库迁移
  4. php cookie赋值使用
  5. appium===安卓SDK下载很慢的解决办法
  6. AR人工智能模型训练计算机,ar人工智能模型训练一般采用什么计算机
  7. 唯一的确定一棵二叉树
  8. Java 线程池 ThreadPoolExecutor源码简析
  9. 暑期读书月开幕式暨天一寻宝活动
  10. x509证书cer格式转pem格式
  11. 小米Note 3完美刷成开发版获取root权限的步骤
  12. 推荐一款前端轻量级的toolTip插件-Tippy.js
  13. 十九个国内外主流的三维GIS软件
  14. OpenCV视频篇——颜色跟踪
  15. 芝加哥大学计算机应用数学专业排名,美国大学应用数学专业排名
  16. ie退出全屏快捷键_IE浏览器快捷键,IE浏览器全屏快捷键
  17. 跨境独立站MaTaCart教你怎么查谷歌排名
  18. 设计模式-简单总结(不涉及代码,有需要戳)
  19. 智能灌溉系统数字化浇水
  20. ae需要安装哪些插件?——AE常用插件脚本预设整理合集(不定期更新)

热门文章

  1. Vmware安装vmware-tools后,仍无法上网
  2. php 标点符号,php怎么去除标点符号
  3. edge浏览器的html文件,手把手解决win10系统利用edge浏览器共享网页的具体方法
  4. tcpdump源码分析(3)——android系统移植(tcpdump,gdb,netstat)
  5. 优秀的产品管理促进了IBM的成功转型--和谐生产方式百题03
  6. linux系统开机启动流程
  7. 【经验心得】每刷新一次页面就顺序更换一张图片的js特效
  8. java中带包的类在命令行中的编译和执行中出现的问题及解决办法
  9. Exchange server 2010系列教程之十一 整合AD RMS与exchange 2010
  10. linux下赋予普通用户管理员权限