Oracle 10.2.0.4
AWR报告中的所有 % Blocks changed per Read = 2.43% ,一般都解释为:
说明 1-2.43%=97.57% 的逻辑读是用于那些只读的而不是可修改的块, 该系统只更新2.43% 的块 。
出处: 可以在google上搜索 “逻辑读是用于那些只读的而不是可修改的块”。
是否可以这样理解,每 100/2.43 = 41.15 次逻辑读,(其中)就有1个block是被修改的。 “该系统只更新2.43%” 是说明逻辑读的时候更改的块少呢 ? 还是说明逻辑读的时候这些在 2.43% 内的块是“热点块” ? 因为“per read” 是逻辑读次数 (读同一个block多次每次加1) , 而Blocks changed 是更改的块个数 (更改同一块多次是否会每次加 1 ?? 按照“该系统只更新2.43% 的块”的说法, 应该是不会每次加 1 ) 。
下面的两种说法不知道是否正确:
1. 假设整个系统有123 个block , 每次读是60个块,期间改变的块有3个, 所以每次逻辑读有 3/123 * 100% = 2.43% 的块更新, 那么可以验证 “该系统只更新2.43% 的块” 。
2. 假设整个系统有2000个block , 每次读也是读123个块,期间改变的块有3个, 那么每次逻辑读中更新的块的数量占每次逻辑读中读的总的块的数量的百分比为 3/123 * 100% = 2.43% (这里不是更新的块占整个系统块的比例) 。 如果是这样, 那么解释为 “该系统只更新2.43% 的块” 就是有问题的。