lory 发表于 2014-2-22 10:50:46

关于library cache和data dictionary cache的关系

在10g concept的文档里有一段这样描述:
The data dictionary is accessed so often by Oracle that two special locations in memory are designated to hold dictionary data. One area is called the data dictionary cache, also known as the row cache because it holds data as rows instead of buffers (which hold entire blocks of data). The other area in memory to hold dictionary data is the library cache. All Oracle user processes share these two caches for access to data dictionary information.

为啥在library cache里面还要存一份dictionary data的信息呢,既然data dictionary chace已经有一份了

Maclean Liu(刘相兵 发表于 2014-2-22 11:39:14

row cache这种数据结构太简单了, 以至于其 依赖性 、可操作性较差,所以 library cache中的部分信息确实是对row cache的重复。

对于row cache和library cache,最早只有row cache, library cache是后来慢慢加入的, 而数据结构上library cache比row cache复杂得多。

实际上后期ORACLE开发部门是想把row cache干掉,完全用library cache的,但是后来发现这个工程太大了,而且很多底层函数如果改了可能遇到一些底层的不安全,所以这个把row cache干掉的想法后来黄了。

lory 发表于 2014-2-22 15:16:09

谢谢解释,这样清楚很多了,今天早上翻了一早上的google。都没找到
页: [1]
查看完整版本: 关于library cache和data dictionary cache的关系