工作集、granule、缓冲区、缓冲池概念及关系?
granule:为了让内存在db_chache_size和shared_pool_size之间高效的移动,oracle在9i重构SGA,使用固定大小的内存块即为granule。这个参数就是为什么当你分配给shared pool值的时候,为什么有时候比你分配的值要大一点,但是granule的整数倍。
头部和缓冲区数组关联,然后查找。这样会更快,还有一部分用于管理,开销很小。
缓冲池:为了方便管理,oracle将这样的granule这样的大小内存块组合而成,这样处理更容易将一个功能组件的内存块重新分配给另一个功能组件。
工作集:就是每个不同的缓冲池能够分为多个工作集,只是为了减少按一个单元处理的缓冲区数量,及granule里的缓冲区。这些工作集可以分割多个granule,这样做均衡了内存I/O的负载。