oracle的版本的更新总是伴随着参数的变化并且越来越趋向于使得参数的设置更简单因为复杂的参数设置使得DBA们经常焦头烂额关于内存这部分的变化我们可以考察下面的参数事实上在i中数据库本身可以给出一组适合当前运行系统的SGA相关部分的参数调整值(参考V$DB_CACHE_ADVICEV$SHARED_POOL_ADVICE)关于PGA也有相关视图V$PGA_TARGET_ADVICE等 Data buffer i中保留了i中的参数如设置了新的参数则忽略旧的参数i中用db_cache_size来取代db_block_buffers用db_keep_cache_size取代buffer_pool_keep用db_recycle_cache_size取代buffer_pool_recycle这里要注意i中设置的是实际的缓存大小而不再是块的数量另外i新增加了db_nk_cache_size这是为了支持在同一个数据库中使用不同的块大小而设置的对于不同的表空间可以定义不同的数据块的大小而缓沖区的定义则依靠该参数的支持其中n可以为等不同的值在这里顺便提及的一个参数就是db_block_lru_latches该参数在i中已经成为了保留参数不推荐手工设置 PGA 在i里面这部分也有了很大的变化在独立模式下i已经不再主张使用原来的UGA相关的参数设置而代之以新的参数假如workarea_size_policy=AUTO(缺省)则所有的会话的UGA共用一大块内存该内存在 pga_aggregate_target 设置以内分配在我们根据前面介绍的方法评估了所有进程可能使用的最大PGA内存之后我们可以通过在初始化参数中设置这个参数从而不再关心其他 *_area_size 参数 SGA_MAX_SIZE 在i中若设置了SGA_MAX_SIZE则在总和小于等于这个值内可以动态的调整数据缓沖区和共享池的大小 SQL> show parameters sga_max_size NAME TYPE VALUE sga_max_size unknown SQL> SQL> alter system set db_cache_size = ; System altered SQL> alter system set shared_pool_size = ; System altered |