ITPub博客

首页 > 数据库 > Oracle > Sga的结构

Sga的结构

原创 Oracle 作者:sunwgneuqsoft 时间:2007-12-01 09:36:18 0 删除 编辑

共享池:“共享池”指定共享池的大小。共享池包含共享游标、存储的过程、控制结构、并行执行消息缓冲区以及其它内容。值越大,多用户系统的性能就越好。值越小,使用的内存就越少。该值被指定为初始化文件参数 SHARED_POOL_SIZE

注:SHARED_POOL_SIZE的值越大,可以缓存的游标,sql就越多,数据库的速度越快;过大的SHARED_POOL_SIZE会导致latch的争用,会导致严重的性能问题。这个参数的修改要慎重,要对系统有个全面的了解后才能修改。

[@more@]

缓冲区高速缓存:“缓冲区高速缓存”指定数据库缓冲区高速缓存中的缓冲区数。高速缓存中的每个缓冲区的大小为一个 Oracle 数据块的大小(该大小由初始化参数 DB_BLOCK_SIZE 指定)。因此,高速缓存中的每个数据库缓冲区可以容纳从数据文件中读取的单个数据块。高速缓存的大小有限,因此并非磁盘上的所有数据都可以装入高速缓存。

注:缓冲区高速缓存的值越大数据库可以缓存的数据越多,数据库运行的速度越快,在内存允许的范围内,增大缓冲区高速缓存会提高数据库的性能。

Db_BUFFER= DB_BLOCK_SIZE * DB_BLOCK_BUFFER

日志缓冲区:“日志缓冲区”指定将重做条目缓存到重做日志文件时占用的内存量。重做日志条目包含对数据库块缓冲区所作更改的记录。一般来讲,如果“日志缓冲区”的值较大,就会减少重做日志文件 I/O。在事务处理时间长或数量多的时候,尤其如此。该值被指定为初始化文件参数 LOG_BUFFER

注:由于日志缓冲区的工作原理限定,日志缓冲区的大小不应该过大,过大的日志缓冲区只是对内存的浪费,建议大小1m~3m

大存储池:“大存储池”用于指定大存储池的分配堆的大小。多线程服务器将大存储池的分配堆用作会话内存,并行执行将它用作消息缓冲区,备份将它用作磁盘 I/O 缓冲区。该值被指定为初始化文件参数 LARGE_POOL_SIZE

注:在共享服务器的模式下,uga是保存在大存储池中的,应适当的增大大存储池的大小;在专有服务器的模式下,大存储池的作用有限,不应该过大。

Java 池:“Java 池”指定 Java 池的大小。该值被指定为初始化文件参数 JAVA_POOL_SIZE

注:在有java应用的数据库中应该适当的增加java池的大小;在没有java应用下的数据库中,java池的大小在30m左右就可以了。

SGA 总容量:SGA 总容量是在该页中显示的各 SGA 组件和 SGA固定容量的总和。SGA 的固定容量是分配给 SGA 区域的内存,包含有关数据库和例程状态的一般信息。

系统中最大的session的数量

数据库中可以允许的最大session数量是有初始化参数中的sessionsprocesses来决定的。

公式如下:

max sessions=min(processes*1.1+5), sessions

数据库初始化参数processes最大值由操作系统可以运行的最大进程及操作系统的一些内核参数有关,而与pga的大小无关,pga的大小是自动扩展的,无法在初始化参数中给出限定(在9i中可以通过初始化参数pga_aggregate_target来指定所有session一共可以使用的最大pga的上限)

可以通过手工修改sort-area-sizehash-area-size等值来控制pga的使用率,这两个值过小会影响排序的效率,过大会造成内存的浪费。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8394333/viewspace-987143/,如需转载,请注明出处,否则将追究法律责任。

下一篇: ORACLE优化器
请登录后发表评论 登录
全部评论
  • 博文量
    56
  • 访问量
    758457