一、 ORACLE内存
内存是影响数据库性能的重要因素, ORACLE8i使用静态内存管理, ORACLE10g使用动态内存管理。所谓静态内存管理, 就是在数据库系统中, 无论是否有用户连接, 也无论并发大小, 只要数据库服务在运行, 就会分配固定大小的内存; 动态内存管理允许在数据库服务运行时对内存的大小进行修改, 读取大数据块时使用大内存, 小数据块时使用小内存, 读取标准内存块时使用标准内存设置。
在ORACLE数据库系统中内存结构主要分为系统全局区(SGA, SYSTEM GLOBAL AREA)和程序全局区(PGA PROGRAM GLOBAL AREA)。
1.1 SGA随着数据库实例的启动向操作系统申请分配一块内存结构, 随着数据库实例的关闭释放, 每一个ORACLE数据库实例有且只有一个SGA。
系统全局区是一组包含数据和控制信息的共享内存结构, 允许ORACLE服务的众多后台进程同时访问或修改其中的数据, 参数文件中SGA_MAX_SIZE指定SGA动态大小。
共享池(SharedPool)
共享池存储了最近多数使用的执行SQL语句和最近使用的数据定义, 它包含库高速缓存器和数据字典缓存器这两个性能相关的内存结构。共享池的大小可以通过初始化参数文件中的SHARED_POOL_SIZE决定。 共享池是活动非常频繁的内存结构, 会产生大量的内存碎片, 所以要确保它尽可能的大。
库高速缓存器
它又包含共享SQL区和共享PL/SQL区两个组件区。为了提高SQL语句的性能, 在提交SQL语句或PL