oracle数据库sga用途_关于oracle数据库中SGA详解
1 名称1.1 组成SGA主要由数据高速缓冲区(Database Buffer Cache)、共享池(Shared Pool)、重做日志缓冲区(Redo Log Cache)、大型池(Large Pool)、java池(java Pool)、流池(Streams Pool)和其他结构(如固定SGA、锁管理等)组成。1.2 重要特性1、SGA的构成——数据和控制信息,我们下面会详细介绍。2、SGA是
1 名称
1.1 组成
SGA主要由数据高速缓冲区(Database Buffer Cache)、共享池(Shared Pool)、重做日志缓冲区(Redo Log Cache)、大型池(Large Pool)、java池(java Pool)、流池(Streams Pool)和其他结构(如固定SGA、锁管理等)组成。
1.2 重要特性
1、SGA的构成——数据和控制信息,我们下面会详细介绍。
2、SGA是共享的,即当有多个用户同时登录了这个实例,SGA中的信息可以被它们同时访问(当涉及到互斥的问题时,由latch和sequence控制)。
3、一个SGA只服务于一个实例,也就是说,当一台机器上有多个实例运行时,每个实例都有一个自己的SGA尽管SGA来自于OS的共享内存区,但实例之间不能相互访问对方的SGA区。
1.3 主要包括
1.数据库高速缓冲(the data buffer cache),
2.重做日志缓冲(the redo log buffer)
3.共享池(the shared pool),包括库高速缓存(the Library cache)和数据字典缓存(the data dictionary cache)以及其它各方面的信息。
1.数据高速缓冲区(Data Buffer Cache)
在数据高速缓冲区中存放着Oracle系统使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用户访问的数据。如果用户要查的数据不在数据高速缓冲区时,数据库定义,即存放有关表,列和其它对象定义及权限。它包括关于数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。在语法分析阶段,Server Process访问数据字典中的信息以解析对象名和对存取操作进行验证。数据字典信息缓存在内存中有助于缩短响应时间。
数据库系统的重要组成部分,下面就为您介绍Oracle内存结构中的SGA内存结构,希望对您能有所帮助。
SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。 当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。 SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。
SGA区是可读写的。所有登录到实例的用户都能读取SGA中的信息,而在oracle做执行操作时,服务进程会将修改的信息写入SGA区。
SGA主要包括了以下的数据结构:
数据缓冲(Buffer Cache)
重做日志缓冲(Redo Log Buffer)
共享池(Shared 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)。
更多推荐




所有评论(0)