系统全局区(System Global Area)
系统全局区Oracle 系统用于存放系统信息的一块存储区域,用户进程和Oracle后台进程都可以使用SGA.在SGA中含有许多组件(不同的部分)。
数据高速缓冲区(Data Buffer Cache)
在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用访问的数据。如果用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。数据高速缓冲区包括三个类型的区:
1) 脏的区(Dirty Buffers):包含有已经改变过并需要写回数据文件的数据块。
2) 自由区(Free Buffers):没有包含任何数据并可以再写入的区,Oracle可以从数据文件读数据块该区。
3) 保留区(Pinned Buffers):此区包含有正在处理的或者明确保留用作将来用的区。
Oracle8i以后将缓冲池分为三个区(使用多个缓冲池特性时):1) KEEP 缓冲池(KEEP buffer pool):在内存中保留数据块,它们不会被从内存中挤掉;2) RECYCLE缓冲池从不需要的内存将数据移掉;3) DEFAULT缓冲池包含有被分配的块。
重做日志缓冲区(Rado Log Buffer)
任何事务(Transaction)在记录到重做日志(恢复工作需要使用联机重做日志)之前都必须首先放到重做日志缓冲区(Redo Log Buffer)中。然后由日志写入进程(LGWR)定期将此缓冲区的内容写入重做日志中。
共享池(Shared Pool)
共享池是SGA保留的区,用于存储如SQL、PL/SQL存储过程及包、数据字典、锁、字符集信息、安全属性等。共享池包含有:1) 库高速缓存(Library Cache);2) 字典高速缓冲区(Dictionary Cache )。
库高速缓存(Library Cache)
该区包含有:1) 共享SQL区(Shared Pool Area);2) 私有SQL区(Private SQL Area);3) PL/SQL存储过程及包(PL/SQL Procedure and Package);4) 控制结构(Control Structure)。也就是说该区存放有经过语法分析并且正确的SQL语句,并随时都准备被执行。
字典高速缓冲区(Data Dictionary Cache)
用于存放Oracle系统管理自身需要的所有信息,这些信息是登录到Oracle的用户名,这些用户有那些数据库对象以及这些数据库对象的位置等。
SVRMGR>; Show SGA Total System Global Area 35544188 bytes Fixed Size 22208 bytes Variable Size 3376332 bytes Database Buffer 122880 bytes Redo Buffer 32768 bytes
后四项相加等于前一项。也可以使用 select * from v$SGA; 查询当前实例的SGA.
大的池(Large Pool)
在SGA中大池是可选的缓冲区。它可以根据需要有管理权进行配置。它可以提供一个大的区以供象数据库的备份与恢复等操作。