Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1185025
  • 博文数量: 398
  • 博客积分: 10110
  • 博客等级: 上将
  • 技术积分: 4055
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 20:01
个人简介

新博客http://www.cnblogs.com/zhjh256 欢迎访问

文章分类

全部博文(398)

文章存档

2012年(1)

2011年(41)

2010年(16)

2009年(98)

2008年(142)

2007年(100)

我的朋友

分类: Oracle

2007-12-25 19:47:44

从Oracle 9i开始,参数db_block_checksum的默认值为true,虽然这个设置大大减少了数据中断发生未通知的概率,但是使用该参数仍有一定的性能代价。
    如果该参数为true,每次数据块或日志文件块写入磁盘的时候,进程首先执行计算并将checksum保存在块头中。同样的原理,每次从磁盘读取的时候,进程将立刻重新计算并验证checksum。如果该参数为false,则仅仅计算system表空间中的块,文件头块,和控制文件块。如果验证失败,将发生ORA-01578, ORA-00368 or ORA-00227等错误,具体依赖于影响的方面。
    checksum是块中所有数据的一个XOR操作,并且只占很少的时间但是聚集时间会达到可观的cpu时间。对于每个io操作都要执行计算。写需要的时间比读更少,因为写通常由DBWn和LGWR在后台完成,而前台进程不会等待这些服务。而读时前台进程必须等待并因此影响了相应时间。
    虽然Oracle文档指示平均增加的负载为1-2%,但是在高i/o查询并且高cpu使用率的系统中通常会情况更差。Oracle推荐是将该参数保持为true,并且通常可用。但是如果应用程序如果是i/o很大的并且可用cpu不多,可以考虑将其设置为false。
阅读(791) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~