shmmax并不是sga的最大大小,它是单个sga的最大大小,也就是说sga的大小是可超过shmmax的,如果sga一但超过shmmax,就会会造成该实例的sga被切割成N块,且每块的大小不大于shmmax的值,如此会导致性能下降,因此shmmax一般设置的比sga大。
sga和pga的总大小,不能超过系统的实际内存,不然无法安装,因此针对数据库不同的用途,对sga和pga的设置会略有偏重。
对于OLTP系统,sga与pga的大小设置一般遵循以下原则:
sga=系统内存*80%
pga=系统内存*20%
而对于OLAP系统,则:
sga=系统内存*20%
pga=系统内存*80%
注:shmmax的大小一般设置为系统实际内存的50%~80%