2、Oracle内存结构

  • 系统全局区(SGA),也叫共享全局区。

1、数据缓冲区(Data Buffer Cache):

用于存储从磁盘数据文件中读取的数据,供所有用户共享。用户修改数据后,修改后的数据先保存在数据库缓冲区中,最后由DBWn进程写入磁盘数据文件。

 

2、日志缓冲区(Redo Log Buffer Cache):

用于存储数据库的修改操作信息。当日志缓冲区中的日志数据达到一定限度时,由日志写入进程LGWR写入磁盘日志文件。

3、共享池(Shared Pool):

用于保存最近执行的SQL语句、PLSQL程序的数据字典信息,它是对SQL语句和PLSQL程序进行语法分析、编译和执行的内存区域。

(1).库缓冲区(library cache):SQL语句的分析码和执行计划;

(2).数据字典缓冲区(data dictionary cache):数据字典中得到的表、列定义和权限;

(3).用户全局区(user globalarea):保存用户的会话信息。

 

  • 程序全局区(PGA)

是包含单个用户(或服务器)数据控制信息内存区域。PGA不是共享区,只有服务器本身才能访问自己的PGA,它主要用来保存用户在编程时使用的变量数组等。

 

  • 排序区(Sort Area)

Oracle系统为排序操作所产生的临时数据,提供的内存空间。在Oracle中,存放用户排序操作所产生的临时数据的区域有两个,内存排序区和临时表空间,优先使用内存排序区进行排序操作,如果内存空间不够,再使用磁盘临时段。

性能调优知识点:

Oracle尽量使用内存排序。

select name,value from v$sysstat where name like '%sort%'; 

sorts(memory)表示内存排序量, sorts(disk)表示磁盘序量。

失败率 = sort(disks)/sorts(memory)  ×100%  排序区的失败率不得小于5%,否则必须增加排序sort_area_size的大小,使得Oracle尽量使用内存排序。磁盘IO的调整就是把数据文件放在多个不同的磁盘上。

 

  • 大池(Large Pool)

用于提供一个大的缓冲区供数据库的备份与恢复操作。

 

  • Java池(Java Pool)

用于在数据库中支持java的运行。

posted @ 2016-05-15 15:40  囧囧友  阅读(265)  评论(0编辑  收藏  举报