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存储一个服务器进程或后台进程的数据和控制信息,并且只能由一个进程使用。它在进程创建时分配,在进程结束时被收回。
*有空再整理各进程概念作用,希望大家支持,不对的地方指正,我改,不要骂我就好了!