在Oracle9i以前的版本中,你只能在啟動數(shù)據(jù)庫的時候控制Oracle使用的UNIX內(nèi)存。Oracle提供了一些INIT.ORA參數(shù)來檢測系統(tǒng)全局區(qū)(system global area,SGA)的RAM大小。一旦啟動了數(shù)據(jù)庫,你將不能再改變SGA的大小和配置。
Oracle9i還加入了一項新的內(nèi)存治理技術(shù),使得你能夠為所有的程序全局區(qū)(PRogram global area,PGA)預(yù)分配內(nèi)存,并答應(yīng)Oracle按照各類連接的不同需求為各連接分配內(nèi)存。這是對傳統(tǒng)Oracle數(shù)據(jù)庫的一項相當(dāng)激進(jìn)的更改,而且使得SORT_AREA_SIZE和其他PGA參數(shù)被廢棄。
Oracle推薦為OLTP數(shù)據(jù)庫和決策支持系統(tǒng)(decision support system,DSS)應(yīng)用程序——如Oracle數(shù)據(jù)倉庫——使用不同的內(nèi)存配置方案。OLTP系統(tǒng)應(yīng)該將UNIX內(nèi)存的大部分分配給SGA,而數(shù)據(jù)倉庫和DSS應(yīng)用程序?qū)?nèi)存較為敏感,則應(yīng)分配大部分內(nèi)存給PGA連接。
alter system set sga_memory_max = 3g; alter system set pga_aggregate_target = 3g;
在Oracle9i中,Oracle提供了增加或減少SGA內(nèi)存以下部分大小的能力:
Data buffer size - alter system set db_cache_size=300m; Shared pool size - alter system set shared_pool_size=200m; Total PGA RAM memory size - alter system set pga_aggregate_target=2000m;