|
digdeep126 发表于 2012-12-9 14:13 ![]()
有几个地方没有看懂,特请教:
1>dirty buffers inspected如果持续升高,物理读、CR块构造性能一定会受影响 ...
我来说说我的理解。
第一个问:在buffer中寻找空闲块时发现脏块,会把脏块及Checkpoint队列中该脏块前面的脏块移到LURW队列中,后通知DBWR进程写数据文件,写后腾出原来来被脏块所占据的内存供数据库服务使用。被移动的块数累加到计数器中。这些被写入的数据块其实还未提交,它不应该被其他任务看到修改后的值(状态),如果有其他任务需要读取这些块的数据,Oracle必须一致性读的原则从undo表空间读取前镜像。此外尚未提交的数据块被再次读写的概率极高,他已经被刷出buffer,降低了命中率,若再次读写势必带来更多的IO。
该值增多,意味着数据库中数据不是正常按照检查点规划正常写入数据文件,而是经常出现很多临时紧急的情况需要把数据应急写入文件。会带来额外的IO开消。
正确与否,待各位批评。 |
|