oracle内存结构概述

Oracle的内存结构可以分为:系统全局区(SGA),程序全局区(PGA),排序区(Sort Area),大池(Large Pool),Java池(Java Pool)

系统全局区

系统全局区(SGA)是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。在一个数据库实例中,可以有多个用户进程,这些进程可以共享SGA的数据,所以系统全局区又称共享全局区。
系统全局区按照作用的不同可以分为:数据缓冲区(存储从磁盘数据文件中读取的数据,供所以用户共享),日志缓冲区(存储数据库的修改操作信息),共享池(保存最近执行的SQL语句、PL/SQL程序的数据字典信息,对SQL语句进行语法分析、编译和执行的内存区域)。

程序全局区

程序全局区(PGA)是包含单个用户或服务器数据和控制信息的内存区域,它在用户进程连接到Oracle数据库并创建一个会话时,由Oracle自动分配。
注意:PGA不是共享区,只有服务器进程本身才能访问自己的PGA,它主要用来保存用户在编程时使用的变量与数组等。

排序区

排序区(Sort Area)是Oracle系统为排序操作所产生的临时数据提供的内存空间。实际上,在Oracle中存放用户排序操作所产生的临时数据的区域有两个,分别是内存排序区和磁盘临时段。Oracle会优先使用内存排序区进行排序,如果内存空间不够,才使用磁盘临时段进行排序。由于内存的操作效率远远大于磁盘的操作效率所以最好使用内存排序区,也就是说数据库的内存排序区的大小不应该设置过小。

大池

大池(Large Pool)也叫大区,用于提供一个大的缓冲区供数据库的备份与恢复操作使用。

Java池

Java池(Java Pool)用于在数据库中支持Java的运行。例如,用Java编写一个存储过程,这时Oracle就会在处理代码时使用Java池的内存。


你可能感兴趣的:(oracle,数据,内存)