oracle的sga
sga |
||
shared pool |
■用于存储: ◆最近执行的SQL 语句 ◆最近使用的数据定义 ◆库缓存 |
|
库缓存 |
■存储最近使用的SQL和PL/SQL语句的信息 ■共享最常用的语句 ■管理上遵循LRU规则 ■包括两个部分: ◆共享PLSQL区 |
|
数据字典缓存 | ■存储在数据库中最近使用的定义 ■包括数据文件,表,索引,列,用户,权限和其他的数据库对象 ■在分析阶段,服务器进程查找数据字典去验证对象的名字以及是否是合法访问 ■对于查询和DML语句,如果数据字典的信息在缓存中能够提高响应时间大小由Shared Pool的大小决定 |
|
SGA中关键的内存片段。特别是性能与扩展上。 ■如果以前执行过,则按照以前执行的计划执行,通常是软分析[soft parse|或快速软分析 ◆通过PCA提交Sql语句>parse语句>soft parse->执行语句- >通过PCA输出 ■如果没执行过,oracle 开始分析语句的语法,语义,按照优化器规则获得最佳执行计划,并在内存中保存这个语句与之对应 的执行计划等相关信息,便于下次快速调用。 ◆通过PGA提交Sql语句parse语句hard parse→分析与得到优化方案[CBOor RB0|→根据优化方案制定执行计划》执行语句 ◆一-通过PGA输出 |
||
数据高速缓存区 |
■暂存从数据文件中获得的数据块的数据映像 ■同样遵循LRU算法管理内存 ◆DB RECYCLE CACHE SIZE ■只有defualt池可以被sga自动管理 |
|
重做日志缓冲区 | ■暂存数据库中所有数据块的改变 ■内存管理方法是FIFO ■重做日志被用于提供数据恢复功能 ■暂存重做日志的目的是为了提高语句的执行速度 ■大小由参数LOG_ BUFFER决定,但这个内存区不能动态调整大小 |
|
大池 |
■大池是系统全局区中可选的一个内存区 |
|
java池 |
■是系统全局区中一个可选内存区。 ■用于Java程序的解析 和执行 |
|