Oracle  物理体系

  • Oracle 物理体系
  • 问题
  • 参考资料

 

Oracle 物理体系

 

 

 

PGA:program global area ,私有不共享内存。

PGA起到预处理的作用:

1.保存用户的连接信息,如session属性,绑定变量等;

2.保存用户权限等重要信息;

3.需要排序时,PGA就是排序区;

 

SGA:system global area,共享内存。

SGA由下组成:

1.共享池

2.数据缓冲区

3.日志缓冲区

 

后台进程:

1.PMON:process monitor 进程监视器

2.SMON:system monitor 系统监视器

3.DBWR:database writer 将数据缓冲区的数据刷到磁盘数据文件中

4.LGWR:log writer 将日志缓冲区的数据刷到磁盘日志文件中

5.CKPT:checkoutPoint 触发DBWR,批量将数据缓冲区的数据刷到磁盘中。并非是commit操作触发DBWR,因为批量操作比单次操作效率高。

6.ARCH 归档日志文件

……

 

数据库:

1.数据文件

2.参数文件

3.控制文件

4.日志文件

 

SGA+后台进程 = 数据库实例;

Oracle服务 = 实例(内存+进程)+ 数据库(磁盘文件);

在多实例数据库环境下,实例和数据库是多对一的关系,但是在大部分情况下是一对一。

 

SQL语句在物理体系中的流转过程:

1.SQL进入PGA进行预处理。保存连接信息,权限信息。如果有排序指令,则进行排序,PGA就是排序区。若内存不够,超出的部分需要到临时表空间中进行排序,即在磁盘中完成排序。只要session不断开连接,下次系统不需要再到磁盘中读取相关的连接信息和权限信息,直接从PGA内存空间中获取。

2.SQL匹配一条唯一的HASH值,进入SGA进行处理。先在共享池中查询是否有存储该HASH值,若有,则跳过语法语义检查、权限检查、解析,直接获得执行计划。若无,则先进行语法语义检查,权限检查,没有问题的话生成该条SQL的唯一HASH值并保存下来。然后进行解析,解析该SQL执行计划。完成解析后将执行计划保存起来,并和HASH值对应起来。

3.SQL进入数据缓冲区,检查是否有需要的数据,若无,则按照执行计划到磁盘数据库文件中查找,找到了就带着数据返回到数据缓冲区。

4如果SQL语句是查询语句,则到第三步,即完成了SQL语句。如果是更新语句,则要遵循 “日志现行” “凡事有记录”的原则,记录日志,并且要保存数据的前镜像。然后才进行更新操作。

 

Tips:

1.因为Oracle有缓存的功能,如果有缓存SQL相应的连接信息,权限信息,执行计划,数据等,不用去磁盘上读取,可以减少物理读。所以执行相同的SQL,第二次比第一次快。

2.如果PGA内存分配太小,排序量太大,部分排序需要到磁盘上进行,IO操作增多,会降低性能。

3.commit不能触发DBWR,而是CKPT触发,是因为批量操作效率优于单次操作。

4.保存数据前镜像,可以实现回滚和数据的一致读。

 

问题

1.Oracle为什么要有归档日志文件的操作,为什么不直接将日志缓冲区中的日志信息保存到归档文件中。

2.没有commit,DBWR也会将数据刷到磁盘数据库文件中?

 

参考资料

“收获,不止Oracle”

 

Oracle 物理体系的更多相关文章

  1. Oracle 10g体系机构及安全管理《思维导图》

    通过学习Oracle数据库后,我对数据库又有了进一步的了解,Oracle数据库 10g体系机构分为 物理和逻辑存储结构. 下面是我对Oracle数据库做的思维导图和笔记 (全屏查看:<思维导图& ...

  2. Oracle 逻辑体系

    Oracle 逻辑体系 主题 Oracle 逻辑体系 参考资料   Oracle 逻辑体系   表空间.模式.用户.段.区.块 Oracle中的数据逻辑上存储于表空间,物理上则存储于属于表空间tabl ...

  3. Oracle物理体系结构

    一.ORACLE 物理体系结构 原理结构图 各部分解释: PGA: 私有内存区,仅供当前发起用户使用. 三个作用 用户登录后的session信息会保存在PGA. 执行排序,如果内存不够,oracle会 ...

  4. Oracle 物理备份--rman

    Oracle 物理备份--rman 1.直接在服务器,打开命令行,输入: rman target/ 2.配置参数也一同备份 configure controlfile autobackup on; 如 ...

  5. [转帖]Oracle 补丁体系(PSR/PSU/CPU) 及 opatch 工具 介绍

    Oracle 补丁体系(PSR/PSU/CPU) 及 opatch 工具 介绍 原文:http://blog.csdn.net/tianlesoftware/article/details/58095 ...

  6. Oracle物理的体系结构

    体系结构图的学习: 老余服装店的故事 结构图: SQL查询语句 SGA 共享池shared pool 数据缓存区Buffer cache PGA 进程 SQL更新语句 SGA: 日志缓存区 日志文件 ...

  7. ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

    在ORACLE数据库中有物理读(Physical Reads).逻辑读(Logical Reads).一致性读(Consistant Get).当前模式读(DB Block Gets)等诸多概念,如果 ...

  8. 浅谈Oracle权限体系

    对于数据库来讲,安全性的重要程度不言而喻,今天我们就来聊一聊Oracle的权限体系. 1.账户管理 在此之前,先解释下一个容易混淆的概念:模式.所谓模式,指的是用户账户所拥有的一组对象(比如表,索引, ...

  9. oracle物理视图(转)

    近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于这方面的资料,便于提高,整理内容如下: 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普 ...

随机推荐

  1. HBase源代码分析之MemStore的flush发起时机、推断条件等详情(二)

    在<HBase源代码分析之MemStore的flush发起时机.推断条件等详情>一文中,我们具体介绍了MemStore flush的发起时机.推断条件等详情.主要是两类操作.一是会引起Me ...

  2. linux 配置apache、mysql、php ——20150807

    2015年8月7日 一部分:mysql mysql 5.5.40安装 第二部分:apache(apache要安装在php前面.apache和mysql可以随意顺序) 1. # tar zxvf htt ...

  3. 【高德地图API】从零開始学高德JS API(二)地图控件与插件——測距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

    不管是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装的一系列更加便于开发人员使用.降低开发人员工作量的二级API接口.除了官方通用的鱼骨.鹰眼控件,还有大量官方开发的地图插件,相似谷歌 ...

  4. matlab中syms与sym有什么差别

    syms x y %就是定了符号变量x y以后x y就能够直接使用了,有他们运算出来的结果也是符号变量 当然上面的也能够x=sym('x'),y=sym('y') sys('a+b')%就是将a+b转 ...

  5. ipv6 dns list

    ip v6 DNS list: 将首选DNS服务器地址填上2001:778::37 备用DNS服务器地址填上2001:df8:0:7::1

  6. 网站定时任务IIS配置

    网站中的定时任务一般是必不可少的,具体的实现方法此文不做详细说明,如有需要了解的请留言.本文主要讲述定时任务有关IIS中的设置. 如果一个网站在20分钟内(IIS默认为20分钟)没有客户端访问,服务器 ...

  7. ios 调试过程捕获异常Stack 信息

    在AppDelegate,定义方法 void catchExceptionHandler(NSException *exception) { NSLog(@"CRASH: %@", ...

  8. verilog语法注意部分

    l generate语句 Verilog-2001添加了generate循环,允许产生module和primitive的多个实例化,同时也可以产生多个variable,net,task,functio ...

  9. 从头认识Spring-3.8 简单的AOP日志实现(注解版)-扩展添加检查订单功能,以便记录并检測输入的參数

    这一章节我们讨论一下扩展添加检查订单功能,以便记录并检測输入的參数. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03 ...

  10. 【Nginx-反向代理server】基础知识(二)之多进程模式

    Nginx的多进程模式 nginx在启动后.会有一个master进程和多个worker进程.master进程主要用来管理worker进程,包括:接收来自外界的信号.向各worker进程发送信号,监控w ...