专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle内存结构--SGA oracle内存结构和进程结构

ins518 2024-10-15 13:12:17 技术文章 18 ℃ 0 评论

SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。 当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。 SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。

SGA区是可读写的。所有登录到实例的用户都能读取SGA中的信息,而在oracle做执行操作时,服务进程会将修改的信息写入SGA区。

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

数据缓冲(Buffer Cache)

重做日志缓冲(Redo Log Buffer)

共享池(Shared Pool)

Java池(Java Pool)

大池(Large Pool)

流池(Streams Pool --- 10g以后才有)

数据字典缓存(Data Dictionary Cache)

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

  • SQL> show sga

  • Total System Global Area 612368384 bytes

  • Fixed Size 1250428 bytes

  • Variable Size 192940932 bytes

  • Database Buffers 411041792 bytes

  • Redo Buffers 7135232 bytes

SGA 中的数据字典缓存 和其他信息 会被实例的后台进程所访问,它们在实例启动后就固定在SGA中了,而且不会改变,所以这部分又称为固定SGA(Fixed SGA)。这部分区域的大小一般小于100K。

Shared Pool、Java Pool、Large Pool和Streams Pool这几块内存区的大小是相应系统参数设置而改变的,所以有通称为可变SGA(Variable SGA)。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表