ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> Oracle >> oracle 11g体系结构

oracle 11g体系结构(1/3)

来源:网络整理     时间:2015-11-25     关键词:访问数据库,队列,系统启动,索引,表空间

本篇文章主要介绍了"oracle 11g体系结构",主要涉及到访问数据库,队列,系统启动,索引,表空间方面的内容,对于Oracle感兴趣的同学可以参考一下: Oracle体系结构由两部分组成Oracle数据库(Oracle Database) 一组文件Oracle实例(Oracle Instance) 内存结构(不包...

Oracle体系结构由两部分组成

  • Oracle数据库(Oracle Database) 一组文件
  • Oracle实例(Oracle Instance) 内存结构(不包含PGA)+一组后台进程
oracle 11g体系结构

数据库是由数据文件、参数文件、日志文件、控制文件、归档日志文件等系列文件组成的。

实例是由一个开辟的内存共享区SGA(System Global Area)和一系列后台进程组成。SGA由共享池、数据缓冲区和日志缓冲区三部分组成,后台进程包括SMON、PMON、CKPT、DBWR、LGWR、ARCH等进程组成。

PGA(Program Global Area)区,这也是一块开辟出来的内存区,和SGA最明显的差别在于PGA不是共享内存。用户对数据库发起的无论是查询还是更新的任何操作,都是在PGA中先预处理,然后才能进入实例区域,由SGA和后台进程共同完成用户发起的请求。PGA都预处理些什么呢?第一,保存用户的链接信息,如绑定变量;第二,保存用户权限等重要信息;第三,当发起的指令需要排序的时候,PGA可用于存放排序后的数据,如果放不下,超出的部分就在临时表空间中存放。

用户请求一条语句经历的顺序可以是PGA----〉instance---〉database,也可以是PGA----〉instance.

SGA组成

(1)数据库高速缓存(database buffer cache)

用来存放用户最近访问的数据

Oracle采用LRU(最近最少使用)算法管理数据库缓冲存储区

Show SGA

数据库高速缓存是由一个个的缓冲区组成的,数据从数据文件中被读到数据库高速缓存中之后,就放在这些缓冲区中.缓冲区的大小与数据块的大小一致。

DB_CACHE_SIZE设置高速缓存的大小(25165824byte)

alter system set db_cache_size= 大小M  scope=spfilesid='数据库SID'
DB_BLOCK_SIZE 数据块的大小(8192byte)

(2)重做日志缓冲区

执行DML或DDL操作。

一定时机下,由日志写入(LGWR)进程把重做日志缓冲区的内容写到磁盘的重做日志文件中保存。

重做日志缓冲区log_buffer的大小在参数文件中设置。值越大,重做日志缓冲区就可以存放更多的事务提交的记录,减少了数据被频繁写入到重做日志文件中的次数。

(3)共享池

包括库高速缓存、数据字典高速缓存。

数据字典存储区:存放系统中定义的数据库对象的信息。

当用户访问数据库中的数据时,确定要访问的对象是否存在。如表的名称、表结构描述、表拥有者的权限情况等。

库高速缓存:存放最近执行的SQL命令的相关信息。即对SQL命令解析、产生分析代码、生成执行计划。

相关图片

相关文章