Oracle的版本的更新,總是伴隨著參數的變化,并且越來越趨向于使得參數的設置更簡單,因為復雜的參數設置使得DBA們經常焦頭爛額。關于內存這部分的變化,我們可以考察下面的參數。 事實上在9i中數據庫本身可以給出一組適合當前運行系統的SGA相關部分的參數調整值(參考V$DB_CACHE_ADVICE、V$SHARED_POOL_ADVICE),關于PGA也有相關視圖V$PGA_TARGET_ADVICE等。 Data buffer 9i中保留了8i中的參數,如設置了新的參數,則忽略舊的參數。9i中用db_cache_size來取代db_block_buffers,用db_keep_cache_size取代buffer_pool_keep,用db_recycle_cache_size取代buffer_pool_recycle;這里要注重9i中設置的是實際的緩存大小而不再是塊的數量。另外9i新增加了db_nk_cache_size,這是為了支持在同一個數據庫中使用不同的塊大小而設置的。對于不同的表空間,可以定義不同的數據塊的大小,而緩沖區的定義則依靠該參數的支持。其中n可以為2、4、6、8、16等不同的值。在這里順便提及的一個參數就是db_block_lru_latches,該參數在9i中已經成為了保留參數,不推薦手工設置。 PGA 在9i里面這部分也有了很大的變化。在獨立模式下,9i已經不再主張使用原來的UGA相關的參數設置,而代之以新的參數。假如workarea_size_policy=AUTO(缺省),則所有的會話的UGA共用一大塊內存,該內存在 pga_aggregate_target 設置以內分配。在我們根據前面介紹的方法評估了所有進程可能使用的最大PGA內存之后,我們可以通過在初始化參數中設置這個參數,從而不再關心其他 ”*_area_size” 參數。 SGA_MAX_SIZE 在9i中若設置了SGA_MAX_SIZE,則在總和小于等于這個值內,可以動態的調整數據緩沖區和共享池的大小 SQL> show parameters sga_max_sizeNAME TYPE VALUE------------------------------------ ------- -------------sga_max_size unknown 193752940SQL> SQL> alter system set db_cache_size = 30000000; System altered. SQL> alter system set shared_pool_size = 20480000; System altered.