1)shared pool
共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。
共享池由库缓存(library cache),和数据字典缓存(data dictionary cache)以及结果缓存(result cache)等组成。
共享池的大小直接影响数据库的性能。
关于shared pool中的几个概念
①library cache:
sql和plsql的解析场所,存放sql/plsql语句代码,以及它们的执行计划。以备其他用户共享
②data dictionary
cache
存放重要的数据字典信息,以备其他用户共享使用
③server result cache:
存放服务器端的SQL结果集及PL/SQL函数返回值
④User Global Area (UGA):
共享服务器连接模式下如果没有配置large pool,则UGA属于SGA的shared pool, 专用连接模式时UGA属于PGA
2)database buffer cache(PPT-II-328)
用于存储从磁盘数据文件中读入的数据,为所有用户共享。
服务器进程(server process)负责将数据文件的数据从磁盘读入到数据缓冲区中,当后续的请求需要这些数据时如果在内存中找到,则不需要再从磁盘读取。
数据缓冲区中被修改的数据块(脏块)由后台进程DBWR将其写入磁盘。
数据缓冲区的大小对数据库的读取速度有直接的影响。
要弄明白Database Buffer Cache中的几个cache概念:
① Buffer pool=(default pool)+(nodefault
pool)
其中:
default pool(参数db_cache_size)是标准块存放的内存空间大小,SGA自动管理时此参数不用设置。使用LRU算法清理空间
nodefault pool:对应的参数有
db_nk_cache_size 指定非标准块大小内存空间,比如2k、4k、16k、32k。
db_keep_cache_size 存放经常访问的小表或索引等。
db_recycle_cache_size 与keep相反,存放偶尔做全表扫描的大表的数据。




