Oracle数据库内存结构.pdfVIP

  • 0
  • 0
  • 约2.27万字
  • 约 14页
  • 2026-02-11 发布于河北
  • 举报

5.3Oracle数据库内存纭构

本节课我们学习Oracle数据库的内存结构。

Oracle的内存配置与oracle性能息息相关。关于内存的配置,是最影响Oracle性能的

配置。内存还接影响到其他两个重要资源的消耗:CPU和10.

先看一下Oracle内存存储的主要内容是什么:

程序代码(PLSQL、Java);

关于己经连接的会话的信息,包括当前所有活动和非活动会话:

程序运行时必须的相关信息,例如查询计划;

Oracle进程之间共享的信息和相互交流的信息,例如锁;

那些被永久存储在外围存储介质上,被cache在内存中的数据(如redolog条目,数据

块)。

每个Oracle数据库都是由OracleInstance(实例)与数据库(数据文件,控制文件、

重做日志文件)组成,其中所谓实例就是用户同数据库交G的媒介,用户通过于一个实例相

连来操作数据库。而实例又是由统一的内存结构(SGA,PGA,UGA)和一批内存驻留进

程组成。实例在操作系统中用ORACL_SID来标识,在Oracle中用参数INSTANC_NAM

来标识,它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全局

区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组

成了Oracle的进程结构,内存区域和后台进程合称为一个Oracle实例。

1、SGA

SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。

如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。当

数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。SGA

是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。

SGA区是可读写的。所有登录到实例的用户都能读取SGA中的信息,而在oracle做

执行操作时,服务进程会将修改的信息写入SGA区。

SGA主要包括了以下的数据结构:

数据缓冲(BufferCache)

重做日志缓冲(RedoLogBuffer)

共享池(SharedPool)

Java池(JavaPool)

大池(LargePool)

流池(StreamsPool-10g以后才有)

数据字典缓存(DalaDictionaryCache)

其他信息(如数据库和实例的状态信息)

SGA中的数据字典缓存和其他信息会被实例的后台进程所访问,它们在实例启动后就

固定在SGA中了,而且不会改变,所以这部分又称为固定SGA(FixedSGA)0这部分区

域的大小一般小于100K。

SharedPool、JavaPool、LargePool和StreamsPool这几块内存区的大小是相应系统参数

设置而改变的,所以有通称为可变SGA(VariableSGA)o

图1是OracleWg的SGA架构。

SystemGlobalArea(SGA)

文档评论(0)

1亿VIP精品文档

相关文档