在Oracle数据库中,系统全局区(SGA) 是一个至关重要的内存结构,它由多个部分组成,负责存储数据库实例的共享信息。SGA的组成部分包括:
- 共享池(Shared Pool)
- 数据库高速缓存(Database Buffer Cache)
- 重做日志缓存(Redo Log Buffer)
- 其它结构(如锁和闩锁,数据状态等)
在SGA中,还可以选择添加以下两个可选内存结构:
- 大池(Large Pool)
- JAVA池(Java Pool)
使用SQL> SHOW SGA;
命令时,你会看到以下信息:
Total System Global Area: 36437964 bytes
Fixed Size: 6543794 bytes
Variable Size: 19521536 bytes
Database Buffers: 16777216 bytes
Redo Buffers: 73728 bytes
动态SGA
自Oracle9i开始,Oracle引入了动态SGA,它允许在不关闭实例的情况下调整SGA的配置。这意味着可以在不关闭数据库实例的情况下改变数据库缓存、共享池和大池的大小。通过这种方式,缓存和池的大小能够根据实际工作负载自动调整,直到达到SGA_MAX_SIZE的最大限制。
SGA的内存配置
SGA的大小受多个初始化参数的影响,以下是最常见的两个影响因素:
- DB_CACHE_SIZE:标准块缓存的大小,默认值在UNIX上为48MB,在NT上为52MB。
- LO: