认识
Oracle
数据库
System Global Area
(
SGA
)
1
概述
Oracle
SGA
区的监控和管理,是数据库日常维护的重要内容。本文详细介绍
SGA
的基本概念,
SGA
运行情况检查,以及
SGA
的参数设置原则,希望对大家的有所
帮助。
2 SGA
的基本概念
当启动
Oracle
数据库时,系统会先在内存内规划一个固定区域,用来储存用户
需要的数据,以及
Oracle
运行时必备的系统信息。我们称此区域为系统全局区
(System Global Area)
,简称
SGA
。
SGA
包含数个重要区域,分别是:
■ Database Buffer Cache (数据库缓冲区
)
■ Redo Log Buffer (重做日志缓冲区
)
■ Shared Pool (共享区
)
■ 其它,如
Java pool
,
Large pool
2.1 Database Buffer Cache (
数据库缓冲区
)
数据库缓冲区的作用主要是在内存中缓存从数据库中读取的数据块。
数据库缓冲
区越大,
为用户已经在内存里的共享数据提供的内存就越大,
这样可以减少所需
要的磁盘物理读。
在
9i
以前数据库缓冲区的大小是由
db_block_buffers*db_block_size
来决定
大小的。
db_block_size
参数是在创建数据库时设置的,
OLTP
系统的
db_block_size
一般设置为
8k
。
在
9i
中,
数据库缓冲区的大小由
db_cache_size
决定,
8i
中的
db_block_buffers
被取消。
db_cache_size
的单位是字节,它直接决定了数据库缓冲区的大小,而
不再是块的数量。
2.2 Shared Pool (
共享区
)
共享区由三部分组成,分别是
Dictionary
cache(
包括数据字典的定义,如表结
构、权限等
)
,
Library
cache(
包括共享的
sql
游标,
sql
原代码以及执行计划、
存储过程和会话信息
)
和
Control structure
。它的大小由初始化参数