Oracle体系结构

Oracle在在线事务处理上比较强

内存IO能力200倍于普通磁盘

select * from emp where empno=:1   绑定变量    通过hash value

有索引走索引,无索引走全表扫描

执行计划会计算总成本,选出执行计划最低的

Shared pool到library cache

1)语句找出 从library cache找出最优的执行计划,找出这条语句

2)对象失效 原先表上有100条数据,表上的数据没有变化,继续执行全表扫描

如果表上的数据增加到了100万条,那么执行计划会改变

3)并发控制 有些票务系统会用到

Library cache中缓存了数百万条记录,如何从中找出这条语句的执行计划,11g里面的SQL语句区分大小写,hash每个字母转化为ASCII码,进行hash运算

用hash value定义SQL语句

数据表用lock控制并发

1)计算hash 

3个SQL都是相同一个emp表,但是归属于不同的schema,那么就会出现3个是一样的hash value,但是确是不同的执行计划。

上图的横线就是软解析的整个等待过程,产生的等待事件是latch library cache

从上到下依次是父游标和子游标

增加mutex锁,为了缩短链表长度,提高检索速度

找到父游标的mutex,找到父游标获取mutex,再找到执行计划。

出现mutex等待事件,说明SQL语句版本过多

硬解析

先获取latch,发现没有,释放latch,再申请latch shared pool,获得chunk内存

语法解析 语义解析 表上数据分布  有无索引

硬解析多,会有等待事件:

latch library cache

latch shared pool

数据字典cache,data dictionary cache主要用来做硬解析时候用

还有一个叫软软解析,在library cache执行完软解析后,会有一个指针直接指向heap6,就是代表软软解析

UGA 放在PGA

session cached cursor

library cache 的heap6 指针指向heap6

可以参考dsi文档

读不阻塞写,但写会阻塞读

当B块正在写的时候,如果A块要去读B块的内容,是无法读的,需要等到

产生了buffer busy waits的等待事件,DML语句产生等待

检查点事件

checkpoint

数据库操作在内存中完成,把数据文件读到内存中去,3000到5000

理想情况下,要在断电前把5000写入磁盘,保证数据不丢失

5000;执行commit,代表事务结束

只要commit就把数据写入磁盘,同步写,效率低,性能差。8k一个数据块

但是数据库同步写入磁盘速度太慢。

现在是如果系统重启完了,数据库在启动时候把数据重新构造出来,数据块用异步来写

只写日志,日志先行,commit,先把日志写入磁盘,数据块缓行。

把上面的1、2、3、4用DBWr写入下面的磁盘内

DBWr负责写脏块,3秒一写,充满1/3空间一写,DBWr把1、2、3、4写回磁盘,DBWr去把原先内存中移除掉已经写回到磁盘里面的1、2、3、4日志

checkpoint进程监控数据文件同步

把当前状态写入控制文件,刚好把日志4写入了磁盘,如果实例挂了,就从日志4开始恢复

Database buffer cache内存空间总要用完

3秒内BCH就会增加1

会把BCH数值小的清除掉

Shared pool做解析,到database buffer cache取数据,database dictionary cache用来做硬解析

Redo log buffer日志先进,先进内存,commit,lgwr写入日志到磁盘

Large pool:对磁盘操作要做内存缓冲,IO操纵,内存缓冲区在large pool定义,如果没有设置large pool会导致在RMAN恢复的时候导致数据库性能下降,因为RMAN恢复会消耗IO资源,导致占用shared pool资源,使数据库性能下降。

用dbms_mview.explain_rewrite物化视图不能查询重写在这里都能看到

一个表,如果多列数据无关联,执行计划正确,如果出现多列数据相关,会导致数据库的执行计划有偏差,需要增加虚拟列来进行修复

多列统计信息和索引无关

收集统计信息

exec dbms_stats.gather_table_stats(‘scott’,’T1’,’CASCADE=>TRUE);

数据库采用哪个执行计划?

Profile优于spm,先profile,再spm

Spm:SQL plan baseline

把SQL语句放入baseline

当第二个accept变成了yes,才会从两个accept中间进行选择

1.      sql tunning advice 验证,数据库自动运行

会从两个accept的yes中进行选择

2.      envolve 手动进行验证

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22996654/viewspace-2127880/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22996654/viewspace-2127880/

oracle 11g 体系结构研究相关推荐

  1. Oracle 18c体系架构图创作之路 - 设计者说(精品海报大放送)

    编辑说明:在刚刚落幕的第八届数据技术嘉年华大会现场,我们正式发布了『Oracle 18c体系架构图』,应广大网友的呼吁,特别向不能到场的朋友放送. (回顾嘉年华:云数据库时代:企业数据架构的云化智能重 ...

  2. 最新Oracle 11g OCA/OCP/OCM 认证考试体系和认证途径

    Oracle(甲骨文)数据库认证考试流程:OCA-OCP-OCM. OCA考试可以在任意Oracle授权培训考试中心或者VUE考场报名考试. OCP证书必须经过ORACLE授权的原厂培训或者Oracl ...

  3. Oracle 11g 新特性简介

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  4. Oracle认证体系的重大变化,你需要知道这些...

    " 本文主要介绍Oracle认证体系及变革,全面解析Oracle Database Administration 2019 Certified Professional Certificat ...

  5. Oracle 11g重要特性

    Oracle 11g的重要特性: 修补和升级.RAC One Node 以及 Clusterware 仅限第 2 版:了解如何针对集群实现单一名称,针对单实例数据库实现高可用性,将 OCR 和表决磁盘 ...

  6. 【ORACLE数据库体系架构】

    一.数据库的逻辑单位:数据块(block).区(extent).段(segment).表空间(tablespace) 1.数据块:默认大小为8k;是数据库最小的逻辑单位 块大小分为:2K,4K:表很小 ...

  7. Oracle 11g新特性

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  8. 【】oracle 11g 新特性

    Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...

  9. oracle 11g 新特性

    2019独角兽企业重金招聘Python工程师标准>>> Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的 ...

最新文章

  1. 腾讯云发布全链路数据开发平台WeData,大数据开发迈入新时代
  2. Android--高德地图自动定位
  3. centos6 安装 mantisbt-1.2.8 —— (3)Linux系统下yum源配置(Centos 6)
  4. 推荐策略产品经理:剖析协同过滤(千人千面推荐的核心 )
  5. java 运行 加载jar,java运行时加载额外的 jar 包或 class
  6. ue4 android vulkan,在Android用vulkan完成蓝绿幕扣像
  7. verilog学习(1)基本语法
  8. centos卸载不必要的程序_在RHEL / CentOS 7上禁用和删除不需要的服务最小安装
  9. 交换机通过port-channel互联
  10. java中mysql.ini_为什么找不到mysql.ini文件,我是放在scr目录下的
  11. 【Push Kit】模拟服务端发送消息至客户端,测试消息发送功能(华为推送服务)
  12. 微信小程序数据拼接_微信小程序字符串和变量如何拼接
  13. 在线压力测试,测试网站并发量
  14. oracle查询所有去掉重复的数据库,ORACLE数据库查询删除重复记录的三种方法
  15. 我的世界空岛生存服务器制作,我的世界:空岛生存“岩浆”没了咋办?大佬给出了6种解决方案!...
  16. Go语言path is relative, but relative import paths are not supported in module mode
  17. 小程序蓝牙BLE——自动连接设备(手环)
  18. Mac 共享 wifi
  19. 产品生命周期,鸿沟理论和CNCF项目孵化
  20. shallot夏洛特

热门文章

  1. Java递归遍历文件夹
  2. 石门县西北乡的路是全国最烂的省级公路
  3. java中jcf实例,java 集合框架(JCF)
  4. Actor模型是解决高并发的终极解决方案
  5. 应届生上培训班就能轻松找到好工作吗?
  6. linux 网络 sk_buff结构
  7. 小项目——涂鸦图片数据挖掘
  8. js获取url参数vue.js获取url参数 JQ获取url参数
  9. left join、right join和join的区别
  10. Python2/3 字符串转16进制 16进制转字符串