数据库

 首页 > 数据库 > Oracle > 认识Oracle数据库System Global Area(SGA)(1)

认识Oracle数据库System Global Area(SGA)(1)

分享到:
【字体:
导读:
         摘要:认识Oracle数据库SystemGlobalArea(SGA)(1)1概述  OracleSGA区的监控和管理,是数据库日常维护的重要内容。本文详细介绍SGA的基本概念,SGA运行情况检查,以及SGA的参数设置原则,希望对大家的有... SyntaxHighlighter.all...

认识Oracle数据库System Global Area(SGA)(1)

认识Oracle数据库System Global Area (SGA)(1)
 
1 概述
  Oracle SGA区的监控和管理,是数据库日常维护的重要内容。本文详细介绍SGA的基本概念,SGA运行情况检查,以及SGA的参数设置原则,希望对大家的有所帮助。
 
2 SGA的基本概念
  当启动Oracle数据库时,系统会先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息。我们称此区域为系统全局区(System Global Area),简称SGA。
  SGA 包含数个重要区域,分别是:
  ■ Database Buffer Cache (数据库缓冲区)
  ■ Redo Log Buffer (重做日志缓冲区)
  ■ Shared Pool (共享区)  www.2cto.com  
  ■ 其它,如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 (共享区)  www.2cto.com  
  共享区由三部分组成,分别是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。  www.2cto.com  
  2.3 Redo Log Buffer (重做日志缓冲区)
  Log_buffer是重做日志缓冲区,对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR 进程将它写入磁盘。LGWR的写入条件是:用户提交、有1/3 重做日志缓冲区未被写入磁盘、有大于1M 重做日志缓冲区未被写入磁盘、超时、DBWR需要写入的数据的SCN 号大于LGWR 记录的SCN 号,DBWR 触发LGWR写入。
  从中可以看出,大于1M的log buffer值意义并不大。重做日志缓冲区的大小由初始化参数log_buffer设定。
 
 
 
作者 李志强
认识Oracle数据库System Global Area(SGA)(1)
分享到:
认识Oracle数据库System Global Area(SG...
认识Oracle数据库System Global Area(SGA)(2) 认识Oracle数据库System Global Area(SGA)(2)   2.4 Large pool和Java pool   Large pool:用于MTS、并行查询和RMAN。如果使用了MTS或RMAN,large_pool特别有用,它可以降低用户对share pool的争用。   如果应用系统不使用MTS,也不使用RMAN,large_pool_size的大...
oracle树形sql查询实例分析
oracle树形sql查询实例分析 oracle树形sql查询实例分析   通过此SQL语句  [sql] select  * from tree    查看原始数据如下:     我们要想得到如下的一个树形查询结果如下图所示 (包含 ROOT, LEVEL, IS_LEAF,  PATH 四个字段):     可执行如下SQL语句: [sql] select connect_by_root(child_col) root, ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……