1. 首页
  2. IT资讯

oracle block cleanout块清除_延迟块清除

       
1,oracle延迟块清除是基于io性能的考虑而设计
2,设想一个UPDATE大量数据的操作,因为执行时间较长,一部分已修改的块已被缓冲池flush out写至磁盘,
  当UPDATE操作完成执行COMMIT操作时,则需要将那些已写至磁盘的数据块重新读入,这将产生大量的io
3,针对上述情况产生延迟块清除

何时发生延迟块清除:
1,在更新过程中,被缓冲池flush out写至磁盘的块
2,若更新操作涉及的块超过了块缓冲区缓存的10%时,超出的部分块。      
3,虽然commit不会对这些已flush到磁盘的数据块进行清除块itl标志操作;
 但会修改回滚段的段头
  回滚段的段头包括了段中的事务的字典,COMMIT操作将本事务转化为非ACTIVE状态。
4,当下一次操作如SELECT,UPDATE,INSERT或DELETE访问到这些块(已flush到磁盘的数据块时)时可能需要在读入后完成块清除,这样的操作称之为块延迟清除
5,具体如何操作呢?
  1,块延迟清除通过事务槽上的回滚段号(已flush回磁盘并重读回buffer cache的数据块之itl),槽号等信息访问回滚段头的事务字典;
    2,此时回滚段头的事务字典标记已是非active状态;则清除块上的itl相关信息
6,一般情况,延迟块清除多发生于select操作中

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

主题测试文章,只做测试使用。发布者:℅傍ㄖ免沦陷dε鬼,转转请注明出处:http://www.cxybcw.com/192876.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code