一致性读请求
ktrget请求调用流程,调用kcbgtcr获取最佳缓存区域用以构建CR缓冲区,然后调用ktrgcm应用undo构建可用的CR缓存。kcbgtcr计算扫描hash桶,调用ktrexf查找最佳缓存区。如果在缓存区域在本地则结束,如果不在本地则调用kcbzib获得缓存区域。kcbzib请求调用kcbzgb获得一个buffer并且设置buffer的状态为Reading。
ktrgcm统计信息递增条件:
-
如果应用UNDO并且CLEANOUT,则“cleanouts and rollbacks - consistent read”计数增加。
-
如果应用UNDO但是没有执行CLEANOUT,则“rollbacks -consistent read”计数增加。
-
如果没有应用UNDO但执行CLEANOUT,则“cleanouts- consistentread”计数增加。
-
如果没有应用UNDO并且也没有执行CLEANOUT,则“no work - consistentread”计数增加。
注:这里的cleanout指的是Oracle延迟块清除。