Oracle的内存结构

备注:本图片截图自“炼数成金”
Oracle的体系结构分为内存结构、进程,磁盘文件。
内存结构分为SGA, PGA。SGA是系统全局区,是所有的用户共享区,PGA是某个用户的私有区。
SGA分为share pool, data buffer, log buffer.
share pool又分为library cache和Data Directory cache, 主要为优化器使用。当以sql语句提交后,会进行语法分析,语法分析通过,进行语义分析,在语义分析中,会进行sql语句的删除和整理, 比如select count(*) from A order by $1, 在语义分析中会将后面order by $1去除。 在语义分析中,优化器会根据share pool的信息基于开销选择一种执行计划,进行执行,同时把执行计划的hash值放入share pool中,第二次执行的时候, 会查询share pool中是否有该执行计划,有该执行计划,就不用重新生成执行计划(硬解析, 大概在一次小数据的查询中,80%的耗时会在硬解析中),而用存放的执行计划。
data buffer是数据的缓冲区,分为default和keep, 其中DBWR进程负责data buffer的填充数据,删除数据,以及由CKPT触发时向磁盘写入数据。当执行一个sql语句后,会留在回滚段中,还可以rollback, 如果再执行commit操作,则将操作确定,但是这时不一定会立即将数据写入磁盘中,而是在log buffer中写入操作日志,将log buffer中的数据写入log文件中,来达到安全保障. 顺便说一句,写日志文件是append操作,而写data文件很多是随机读写,所以写log文件的速度比写data文件快. 当读数据的时候, 首先查看data buffer中是否有目标数据,如果没有,则从磁盘中读入目标数据块.
log buffer是日志的缓冲区,当log buffer达到一定阀值时或者commit时,会像日志文件中写入日志数据。当日志文件1写满,就写2,依次下去,如果4写满,会重新写1,这时,如果归档模式打开,就会先向存储介质中归档1中的数据,如果归档模式没有打开,直接覆盖1. 值得注意的是,在几个日志文件进行切换或者归档的的时候,因为操作是按照先写入日志再进行读写操作的方式进行操作,log buffer不能向日志文件中写入数据,所以,操作不能继续进行,系统处于暂停状态。因此,为了避免log文件的频繁切换,我们适度增大文件的大小和个数,一般每个文件的大小设置为2G,log文件的个数为8.
PGA, 用户的排序等操作是在PGA中进行的。 可以根据物理服务器的大小, 通过设置SGA, PGA的参数来进行调优。
Oracle的内存结构的更多相关文章
- Oracle之内存结构(SGA、PGA)
一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个服务进程.后台进程专有:每个进程都有一个PGA. ...
- oracle 初探内存结构
数据库的存储机构 分为 逻辑存储结构 和 物理存储结构 逻辑存储结构: 数据库.表空间.段.区.块 物理存储结构: 数据库.控制文件.数据文件.初始化参数文件.OS块等. 一个区只能在 ...
- [转载] Oracle之内存结构(SGA、PGA)
2011-05-10 14:57:53 分类: Linux 一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area ...
- 【转载】Oracle之内存结构(SGA、PGA)
[转自]http://blog.itpub.net/25264937/viewspace-694917/ 一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: ...
- oracle整体结构-内存结构、物理结构、逻辑结构、进程
Oracle的体系结构大体上分为两部分:Instance(实例)和Database(数据库). Instance(实例) :在Oracle Instance中主要包含了SGA以及一些进程(例如:PMO ...
- [转]oracle学习入门系列之五内存结构、数据库结构、进程
原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大 ...
- Oracle体系结构之内存结构(3)
Oracle内存结构由系统全局区SGA和程序全局区PGA组成. SGA是实例启动的时候分配的Oracle实例中的一个基本成分. PGA是服务器进程启动时分配. 1.系统全局区SGA 系统全局区SGA由 ...
- Oracle数据库基础入门《二》Oracle内存结构
Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...
- Oracle内存结构:SGA PGA UGA
内存结构是oracle数据库最重要的组成部分之一,在数据库中的操作或多或少都会依赖到内存,是影响数据库性能的重要因素Oracle数据库中包括3个基本的内存结构: 一. 系统全局区 (System G ...
随机推荐
- Spring中@Controller和@RestController之间的区别
1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @C ...
- 实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。
(1)Person类中的属性有:姓名name(String类型),地址address(String类型), 电话号码telphone(String类型)和电子邮件地址email(String类型): ...
- 运用C#生成docx格式的报表
这几天在北京做一个大桥的监测系统的项目,涉及到一个功能,那就是采集数据,处理后,希望能自动生成一个报表,只需要在一个模板的基础上加几个数就可以了,但因为希望生成的是.docx格式的word2007/2 ...
- uploadify springMVC
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- jquery总结02-样式和属性
.attr() .removeAttr() 设置属性和移除属性,里面可以是属性,属性值 ,只有属性名时只获取第一个蒜素的属性值 .html() .text() .val() html 获取包括标签 ...
- 【OOAD】OOP的主要特征
聚合 “虚包含” 不明确组合 “实包含” 明确 抽象(abstract)抽象:抽象是通过特定的实例抽取共同特征以后形成概念的过程.它强调主要特征,忽略次要特征.一个对象是现实世界中一个实体的抽象,一个 ...
- openstack 流量控制
G版的流量控制,可以在horizon通过对flavor进行配置来实现 1.有admin权限,点击admin进入管理界面:点击Flavors,选取要控制的flavor:点击more,找到View Ext ...
- JavaScript严格模式详解
转载自阮一峰的博客 Javascript 严格模式详解 作者: 阮一峰 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict m ...
- C语言细节——献给入门者(三)
C语言细节——献给入门者(三) >>主题:关于强制类型转换 先来瞎扯下强制类型转换,c语言有很多数据类型,long,short,int,float,double,bool,char等等.当 ...
- 20161026__Oracle10g_DataGuard
1. orcl.__db_cache_size=180355072 orcl.__java_pool_size=4194304 orcl.__large_pool_size=4194304 orcl. ...