<b>熟习Oracle数据库System Global Area (SGA)-入门底子</b>[Oracle防范]
本文“<b>熟习Oracle数据库System Global Area (SGA)-入门底子</b>[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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.它的大小由初始化参数shared_pool_size掌握,它的作用是缓存已经被解析过的SQL,使其能被重用,不用再解析.SQL的解析非常损耗CPU的资源,假如一条SQL在Shared pool中已经存在,则举行的仅是软解析(在Shared pool中探求相同SQL),这将大大提高数据库的运行效率.当然,这部份内存也并非越大越好,太大的Shared pool,oracle为了保护同享构造,将付出更大的管理开销.倡议在150M-500M之间.假如系统内存为1G,该值可设为150M-200M;假如为2G,该值设为250M-300M;每增添1G内存,该值增添100M;但该值最大不该超越500M.
2.3 Redo Log Buffer (重做日记缓冲区)
Log_buffer是重做日记缓冲区,对数据库的任何改正都按次序被记录在该缓冲,然后由LGWR 进程将它写入磁盘.LGWR的写入条件是:用户提交、有1/3 重做日记缓冲区未被写入磁盘、有大于1M 重做日记缓冲区未被写入磁盘、超时、DBWR需求写入的数据的SCN 号大于LGWR 记录的SCN 号,DBWR 触发LGWR写入.
从中可以看出,大于1M的log buffer值意义并不大.重做日记缓冲区的大小由初始化参数log_buffer设定.
以上是“<b>熟习Oracle数据库System Global Area (SGA)-入门底子</b>[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |