Oracle 11g R2 体系结构

安装oracle软件----建立数据库----在数据库中建立表----表里存储信息---这些表文件须要存储在物理硬盘上面。sql

假若有一个用户(这个用户能够是远程用户,也能够是本地的,也能够是一个应用程序)链接到oracle数据库上面,用户是不能直接链接在硬盘上存储的数据文件,因此在oracle中要运行一个实例,实例并非保存在硬盘上面的,实例是内存的一部分,而库和表文件是存放在硬盘上面的,用户不能直接访问库里面的数据,只能访问实例,实例是一个特殊的内存块,只有实例能和数据库直接通讯,在我们的实验环境中实例和数据库是在同一台机器上,咱们称之为单实例环境,对于用户而言全部的操做都是在实例中完成的,oracle为实例划分了一个内存块,这个内存块咱们称之为SGA,其实oracle实例启动的时候,将会分配一个SGA系统全局区并启动一些oracle的后台进程(守护进程)。数据库

SGA核心组件介绍:缓存

在oracle中内存=SGA+PGA服务器

一个实例只能有一个SGA,全部的服务器进程和后台进程都共享一个SGA微信

PGA:oracle

咱们先看一下一个select语句是如何被执行的?ide

若是hr用户写了一个select * from scott.emp;日志

第一步:先作编译,编译包含了语法的检查和语义的检查。对象

第二步:若是编译没有问题会进入shared pool(共享池 )中,而shared pool 是由library cache和data dictionary cache(数据字典缓存)组成。Sql语句第一时间会进入librarycache中,即library cache中会存放被编译过的正确的sql语句,仅仅是sql语句而已。library cache中没有缓存的sql语句须要进行硬解析(即须要耗费设备的I/0资源从硬盘读取)。假设library cache中有这个sql语句,就不须要作硬解析,接着会查 data dictionary cache。data dictionary cache中缓存了权限和对象数据及属性,全部data dictionary cache检查hr用户是否对scott.emp表是否具备访问权限,若是有权限继续往下执行,若是没有权限,直接给hr用户返回一个结果。若是一条语句历来都没有被执行过,这条语句首先被缓存在share pool中的library cache中,下一次被执行的时候直接从share pool中取sql语句。存放sql语句也须要占用空间,share pool的空间也是有限的,为了防止share pool空间不够用,采用先进先出的规则即后执行的sql语句会覆盖先执行的sql语句来释放空间,固然share pool的空间越大越好。blog

咱们经过企业管理器来查看share pool的相关信息
Oracle 11g R2 体系结构
Oracle 11g R2 体系结构
在sql plus中能够用如下方式查看,图中“0”表示自动化管理
Oracle 11g R2 体系结构
能够从v$sgainfo中查看shared pool size

SQL> select name,bytes/1024/1024||'MB' from v$sgainfo;

Shared Pool Size

256MB

Large Pool Size

16MB

Java Pool Size

16MB

第三步:data buffer cache如今hr用户能够访问scott.emp表了,databuffer cache的做用就是从磁盘或存储中将数据块调入内存,缓存在buffer cache中。

举例:

用户第一次访问scott.emp的内容

SQL> set timing on

SQL> select * from scott.emp;第一次执行sql语句

已选择14行。

已用时间: 00: 00: 00.05

SQL> /再次执行上一条命令所用的时间为00: 00: 00.00

已选择14行。

已用时间: 00: 00: 00.00

总结:buffer cache缓存数据自己,library cache缓存sql语句自己。

能够经过show parameter db_cache_size查看buffer cache的大小
Oracle 11g R2 体系结构
第四步:redo log buffer<重作日志缓冲区>当用户执行insert,update,delete,create,alter等操做后,数据发生了变化,这些变化了的数据写入数据缓冲区(buffer cache)以前,先写入重作日志缓冲区,同时变化以前的数据也放入重作日志缓存中,这样作,是为了保证在数据恢复时oracle就知道哪些事务须要提交,哪些事务须要撤回。

若是对此文有什么问题的话,请加下面微信一块儿探讨
Oracle 11g R2 体系结构

相关文章
相关标签/搜索