第二课Oracle基础架构

SGA系统全局区基本组成
Shared pool,database buffer cache,redo log buffer,other structures,另外可能包含large pool,Java pool,Steam pool,随着Oracle版本的不同,SGA可能会包含新的内存结构。
SQL>show sga;
即可查看sga的大小

SGA是动态调整的,有一个重要的参数SGA_MAX_SIZE,决定Oracle SGA的上限。SGA动态调整的基本单位叫做granules,SGA小于128M的时候granules大小是4M,SGA超过128M时,granules大小是16M。SGA是一个连续分配的内存区域。
SQL>select component,granule_size from v$sga_dynamic_components;
在这里插入图片描述

SGA里面相关重要参数
DB_CACHE_SIZE
LOG_BUFFER
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE

1、shared pool
存储最近执行的SQL语句,以及存储最近使用的数据定义,由两部分组成,library cache和data dictionary cache。
①library cache,存储最近的经过编译解析后的SQL语句和PL/SQL语句的相关信息。因此包含两部分,shared SQL area和shared PL/SQL area,实际还包含其他的一些内容。大小由shared pool size决定。
Library cache里面的SQL语句和PL/SQL语句如果下次被用到则不需要进行编译和解析,直接从library cache中取出使用。如果经常使用的SQL语句和PL/SQL语句大部分都不一样,则每次都要重新编译解析。所以,library cache的大小决定了编译解析SQL语句和PL/SQL语句的频率,从而影响Oracle的性能,是影响性能比较重要的因素。

②data dictionary cache,存储数据库所有控制信息的信息,包括数据文件、表、索引、列、用户、权限等相关信息。使用频率很高,几乎所有对数据库的操作都需要查询data dictionary cache。可以提升查询和DML语句的反应时间。大小由shared pool size决定。

2、database buffer cache
空间是最大的,用来存储真正的数据文件。将经常访问的数据块存放在database buffer cache,以提高数据访问速度。也包含即将写入数据文件中的数据。如果需要访问的数据在database buffer cache中则称为cache hit,如果不在其中,则称为cache miss。用来提升数据库获取或更新数据的性能。
Database buffer cache中块的大小由DB_BLOCK_SIZE大小决定。其中也包含三部分内容:DB_CAHCE_SIZE,DB_KEEP_CACHE_SIZE和DB_RECYCLE_CACHE_SIZE。
通过alter system set DB_CAHCE_SIZE = 96M来动态改变空间大小。在进行性能调优过程中,可能需要监控DB_CAHCE_SIZE的行为和统计信息,可以通过DB_CAHCE_ADVICE来设定是否收集信息,收集的信息放置于v$DB_CAHCE_ADVICE动态表中。

3、redo log buffer
记录数据库数据块所有的变化,主要用来进行数据恢复。数据块每一次变更都会生成一条叫做redo entries的记录,大小由LOG_BUFFER决定。

4、large pool
SGA中额外的一部分内存区域,large pool主要用来处理一些额外的工作,比如rman备份恢复过程,IO 操作或者并行处理的时候可能会用到。大小由LARGE_POOL_SIZE决定,可以动态调整。

5、Java pool
主要用来和Java打交道,Oracle支持Java编程和写存储过程,大小由JAVA_POOL_SIZE决 定

PGA(Program Global Area)
每一个后台进程独自使用一个PGA,server process起来了则分配一个PGA,server process断开后PGA自动收回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值