Oracle内存结构总表
Sga (server global area) | 类型 | 类1 | 类2 | 类3 | 对应的参数 | 注意事项 | 使用方法 | 经典案例(附件) |
Fixed | 固定占用的内存 |
|
|
| LOCK_SGA参数,指定把SGA锁定在物理内存里。 DB_CACHE_SIZE、LOG_BUFFER、SHARED_POOL_SIZE、LARGE_POOL_SIZE 整个SGA可以使用的最大值受SGA_MAX_SIZE初始化参数的限制。如果在启动instance初始化内存的时候,设置的SGA_MAX_SIZE参数比SGA组的内存之和要小,或者使用SGA_MAX_SIZE的缺省设置,那么在instance启动后,会忽略SGA_MAX_SIZE初始化参数 |
|
| |
Static | Redo buffer |
|
| LOG_BUFFER |
|
| ||
Java pool |
|
| JAVA_POOL_SIZE |
|
| |||
Dynamic | Buffer cache | DEFAULT BUFFER POOL |
| DB_CACHE_CACHE_SIZE |
|
| ||
KEEP BUFFER POOL |
| DB_KEEP_CACHE_SIZE |
|
| ||||
RECYCLE BUFFER POOL |
| DB_RECYCLE_CACHE_SIZE |
|
| ||||
Shared pool | Library cache | Shared SQL areas | SHARED_POOL_SIZE |
|
|
| ||
Private SQL areas | 如果是dedicated server,那么private SQL area在server process’PGA。如果是shared server,那么private SQL area在SGA里分配 |
|
| |||||
PL/SQ areas |
|
|
| |||||
Control structures | 例如locks,library cache handles |
|
| |||||
Dictionary cache |
|
|
|
| ||||
Large pool |
|
|
|
|
|
| ||
Pga (Process global area) |
| Private SQL Area | cursor | 如果是dedicated server,那么private SQL area在server process’PGA。如果是shared server,那么private SQL area在SGA里分配 |
|
|
|
|
SQL Areas |
|
|
|
| ||||
Session Memory
|
|
|
|
|
|
| ||
SQL Work areas | SORT_AREA_SIZE |
| PGA_AGGREGATE_TARGET和 WORKAREA_SIZE_POLICY需要注意的地方: 1. DBA可以简单的,只需要设置PGA_AGGREGATE_TARGET参数来指定PGA的总大小即可,这样PGA的各内存模块大小就会被Oracle自动和全局管理了。 2. WORKAREA_SIZE_POLICY参数值缺省为auto,也只有在auto时PGA_AGGREGATE_TARGET对*_AREA_SIZE的分配管理才生效在shared server,work ares的大小不是PGA_AGGREGATE_TARGET参数分配了,因为在shared server,work areas将在SGA里分配。所有在shared server,work area仍然是由*_area_size参数控制
|
|
| |||
HASH_AREA_SIZE, |
|
|
| |||||
BITMAP_MERGE_AREA_SIZE, |
|
|
| |||||
CREATE_BITMAP_AREA_SIZE |
|
|
|