sga,pga,share pool,data buffer等词汇在数据库治理文档中经常出现,他们代表什么意思呢?总结如下: -------------------------------------------------------------------------------------- Oracle 的内存结构
Oracle的内存结构由以下两个部分组成: System Global Area(SGA):Oracle Instance的 基本组成部分,在实例启动时分配。 Program Global Area (PGA) :当服务器进程启动时分配 -------------------------------------------------------------------------------------- System Global Area(SGA) SGA由以下内存结构构成 Shared Pool Database Buffer Cache Redo Log Buffer 其它结构 还可以选择为SGA配置以下两个可选的内存结构: Large Pool Java Pool SHOW SGA; ------------------------------------------------------------------------------------ Shared Pool Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义。 它主要由两个内存结构构成: Library cache Data dictionary cache 修改共享池的大小 ALTER SYSTEM SET SHARED_POOL_SIZE = 64M; -------------------------------------------------------------------------------------- Library Cache Libray Cache缓存最近被执行的SQL和PL/SQL的相关信息。 实现常用语句的共享 使用LRU算法进行治理 由以下两个结构构成: Shared SQL area Shared PL/SQL area Data Dictionary Cache Data dictionary cache缓存最近被使用的数据库定义。 它包括关于数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。 在语法分析阶段,Server Process访问数据字典中的信息以解析对象名和对存取操作进行验证。 将数据字典信息缓存在内存中有助于缩短响应时间。 ----------------------------------------------------------------------------------- Database Buffer Cache Database Buffer Cache用于缓存从数据文件中检索出来的数据块。 可以大大提高查询和更新数据的性能。 使用LRU算法进行治理 ------------------------------------------------------------------------------------- Redo Log Buffer Cache Redo Log Buffer Cache缓存对于数据块的所有修改。 主要用于恢复 其中的每一项修改记录都被称为redo 条目。 利用Redo条目的信息可以重做修改。 -------------------------------------------------------------------------------------- Large Pool Large Pool是SGA中一个可选的内存区域,它只用于shared server环境。 可以减轻共享池的负担 可以为备份、恢复等操作来使用 不使用LRU算法来治理 指定Large Pool的大小 ALTER SYSTEM SET LARGE_POOL_SIZE=64M ------------------------------------------------------------------------------------ Jave Pool Java Pool为Java命令的语法分析提供服务 在安装和使用Java的情况下使用 其大小由JAVA_POOL_SIZE指定 ------------------------------------------------------------------------------------ Program Global Area(PGA) PGA是为每个连接到Oracle database的用户进程保留的内存。 Program Global Area(PGA) PGA存储一个服务器进程或后台进程的数据和控制信息,并且只能由一个进程使用。
它在进程创建时分配,在进程结束时被收回。
|