体系结构

Oracle体系结构示意图
  • Oracle服务器:
Oracle服务器是一个数据库管理系统,它为信息管理提供了开放、综合和集成的方法,包括Oracle实例和
Oracle数据库。

Oracle服务器
  • Oracle实例(Instance)
单实例数据库,RAC
由内存结构和后台就进程结构组成

Oracle实例
  • Oracle数据库
是一个被统一处理的数据集合
包括三类文件:数据文件、控制文件、redo日志文件

  • Oracle数据库内存结构
Oracle的内存结构由两个内存区组成,分别是:
系统全局区(SGA, System Global Area):在实例启动时分配,是Oracle实例的基本组件
程序全局区(PGA, Program Global Areas):在服务器进程启动时分配

  • 系统全局区(SGA)
SGA包括以下几种内存结构:
1.共享池
2.数据库缓冲区高速缓存
3.undo日志缓冲区
4.其他结构(例如锁和栓锁的管理信息以及统计数据等)
在SGA中还可配置其他几种内存结构:
1.大型共享池
2.Java池
3.Streams池
SGA是动态的:
1.大小由SGA_MAX_SIZE参数指定
由SGA组件以粒组(Granule)为单位进行分配和跟踪:
1连续的虚拟内存分配
2粒组大小由估算的SGA_MAX_SIZE总计大小确定

  • 共享池(Share Pool)
用于存储:
1.最近执行的SQL语句
2.最近使用的数据定义
它包括以下两个与性能相关的关键内存结构:
1.库高速缓存
2.数据字典高速缓存
其大小由SHARED_POOL_SIZE参数确定

共享池
  • 库高速缓存
存储最近使用的SQL和PL/SQL语句的有关信息
使得常用语句可以共享
由"最近最少使用算法"(LRU)管理
包括以下两个结构:
1.共享的SQL区
2.共享的PL/SQL区
大小由共享池的大小确定

  • 数据字典高速缓存(Data Dictionary Cache)
数据库中最近使用对象的定义的集合
包括与数据文件、表、索引、列、用户、权限以及其他数据库对象有关的信息
在语法分析阶段,服务器进程会在数据字典中查找用于解析对象名和验证访问的信息
将数据字典信息缓存到内存中,可缩短查询和DML的响应时间
大小由共享池的大小决定

  • 数据库缓冲区高速缓存(Buffer Cache)
存储已从数据文件中检索到的数据块的副本
能够大幅提高获取和更新数据时的性能
通过LRU算法管理
主数据块的大小由DB_BLOCK_SIZE确定
所有用户共享

  • 重做日志缓冲区(Redo Log Buffer)
记录对数据库数据块所做的全部更改
主要目的是用于恢复
其中记录的更改称作重做条目
重做条目包含用于重新构造或重做更改的信息
大小由LOG_BUFFER定义

  • 大型共享池(Large Pool)
SGA中的可选内存区
分担了共享池的一部分工作
用于:
1.共享服务器的会话内存(UGA)
2.I/O服务器进程
3.备份和恢复操作或RMAN
4.并行执行的消息缓冲区 - 将PARALLEL_AUTOMATIC_TUNING设置为TRUE
不使用LRU列表
大小由LARGE_POOL_SIZE确定
可以动态调整

  • Java池
用于Java命令的解析
在安装并使用Java时是必需的
大小由JAVA_POOL_SIZE参数确定

  • 程序全局区
为连接到Oracle数据库的每个用户进程保留的内存
在创建进程时分配
在进程终止时释放
仅供一个进程使用

  • Oracle进程
在数据库用户请求连接到Oracle服务器时启动
服务器进程(Server Process):与Oracle实例相连接,在用户建立会话时启动
后台进程(BackGround Process):在Oracle实例启动时启动

  • 用户进程
与Oracle服务器就进行交互的程序
必须先建立连接
不与Oracle服务器直接交互

  • 服务器进程
直接与Oracle服务器交互的程序
执行生成的数据库调用并返回相关结构
可以是专用服务器或共享服务器

  • 后台进程
维护并保证物理结构与内存结构之间的关系
必备的后台进程:
1.DBWn PMON CKPT
2.LGWR SMON
可选的后台进程:
1.ARCn LMDn RECO
2.CJQ0 LMON Snnn
3.Dnnn Pnnn
4.LCKn QMNn

  • 数据库写入程序(DBWn)
在一下情况下将数据库高速缓存中的脏块写入磁盘:
1.出现检查点
2.脏数据缓冲区达到阈值
3.没有空闲缓冲区
4.出现超时
5.执行了RAC ping请求
6.表空间处于OFFLINE状态
7.表空间处于READ ONLY状态
8.对表执行DROP或TRUNCATE操作
9.对表空间执行BEGIN BACKUP操作

  • 日志写入器(LGWR)
将重做日志缓冲区的内容写入磁盘上的重做日志文件
下面的事件触发LGWR进行操作:
1.用户提交一个事务时
2.当重做日志缓冲区写满1/3时
3.有1MB的重做数据时
4.每隔三秒
5.在DBWn将脏块写入磁盘前

  • 系统监控程序(SMON)
职责:
1.实例恢复:
- 前滚重做日志中的更改
- 打开数据库供用户访问
- 回退未提交的事务处理
2.合并空闲空间
3.回收临时段

  • 进程监视器(PMON)
进程失败后,通过以下方法进行清理:
1.回退事务处理
2.释放锁
3.释放其它资源
4.重新启动已失效的调度程序

  • 检查点
职责包括:
1.在检查点发信号给DBWn
2.使用检查点信息更新数据文件的标头
3.使用检查点信息更新控制文件

  • 归档程序(ARCn)
可选的后台进程
设置ARCHIVELOG模式时自动归档联机重做日志
可以保留数据库的全部更改记录

  • 数据库存储结构(Storage Architecture)
  • 数据库的逻辑和物理结构
  • 逻辑结构
指示数据库物理空间的使用情况
层次结构由表空间、段、区和块组成

  • 表空间和数据文件
表空间包括一个或多个数据文件
一个数据文件只能属于一个表空间

  • 段(Segment)、区(Extents)和块(Blocks)
段存在于一个表空间中
段是区集合
区是数据块的集合
数据块和磁盘上的块相映射,但不等同

  • 物理结构
物理结构包括以下三种文件类型:
1.控制文件
2.数据文件
3.重做日志文件

  • Oracle体系结构小结
1.内存结构:
- SGA:数据库高速缓存、重做缓冲区以及各种池
- PGA(Program Global Area)
2.进程结构:
- 用户进程和服务器进程
- 后台进程:SMON、PMON、DBWn、CKPT、LGWR、ARCn等
3.存储结构:
- 逻辑:Database、Schema、Tablespace、Segment、Extent
4.Oracle block
- 物理:Data files、Control files、Redo log files

性能优化

数据字典可以有效分析和定位问题
AWR是最常用的调优工具

  • 查看实例状态
SELECT 

  • 查看数据库状态
SELECT 

  • 控制文件
SELECT 

  • 在线日志
SELECT 

  • 表空间
SELECT 

  • 数据文件
SELECT 

  • 表空间使用情况
SELECT 

  • 等待事件
SELECT 

  • diskread
SELECT 

  • 死锁
SELECT 

  • 缓存命中率
SELECT 

优化案例

一条插入语句,平均耗时

oracle临时表经常被锁_5.性能测试 - Oracle体系结构和性能优化简介相关推荐

  1. oracle awr报告生成_5.性能测试 - Oracle体系结构和性能优化简介

    体系结构 Oracle体系结构示意图 Oracle服务器: Oracle服务器是一个数据库管理系统,它为信息管理提供了开放.综合和集成的方法,包括Oracle实例和 Oracle数据库. Oracle ...

  2. oracle临时表经常被锁_linux安装oracle

    需要安装oracle dataguard,所以先要安装单台oracle11g,下面是单台oracle11g的详细安装过程. 1,安装环境 硬件环境:2台linux虚拟机,Centos6.4 ,4G , ...

  3. oracle临时表经常被锁_这是一篇长篇入门级数据库讲解:oracle数据库数据导入导出步骤

    正如标题一样,本文内容主要介绍了浅谈入门级oracle数据库数据导入导出步骤,文章通过步骤解析介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!!! ...

  4. oracle临时表经常被锁_数据库学习——Oracle 数据库了解与使用

    一. 数据库相关概念 1 什么是数据库 所谓的数据库其实就是数据的集合.用户可以对集合中的数据进行新增.查询.更新.删除等操作.数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与 ...

  5. oracle 好多p进程,PostgreSQL在最新硬件上的性能优化.pdf

    PostgreSQL在最新硬件上的性能优化 叶 涛 2015/11/20 希望探讨的问题 单实例的PostgreSQL的性能极限可以到多少? 目录 • 硬件的发展趋势及对数据库的机遇和挑战 • Pos ...

  6. oracle性能优化简介

    最近这段时间刚做了一项性能优化的工作,根据一周的statspack报告,写了一个优化方案. 一.系统现有的主要性能问题 从最近一周比较典型的STATSPACK报告来看,系统中主要的等待事件如下: To ...

  7. oracle临时表经常被锁_【赵强老师】Oracle数据库的存储结构

    Oracle的存储结构分为:物理存储结构和逻辑存储结构. 一.物理存储结构:指硬盘上存在的文件 数据文件(data file) 一个数据库可以由多个数据文件组成的,数据文件是真正存放数据库数据的.一个 ...

  8. oracle 临时表空间满了_精心总结--Oracle查询表空间的每日增长量和历史情况统计脚本...

    概述 今天主要总结一下Oracle表空间每日增长和历史情况统计的一些脚本,仅供参考. 11g统计表空间的每日增长量 SELECT a.snap_id, c.tablespace_name ts_nam ...

  9. oracle临时表空间占用率过高,ORACLE 临时表空间使用率过高的原因及临时解决方案...

    数据库temp临时表空间增大,一般在数据安装时设置临时表空间大小,默认的情况下都是设置为自动增长.这样会引起一个问题:在数据库使用中temp表空间会自动扩展的越来越大,造成磁盘空间使用不足. 引起临时 ...

最新文章

  1. 自定义最大高度的ViewGroup
  2. socket与http
  3. 8个秘诀成就顶级增长黑客
  4. mysql router测试_MySQL 主从复制配置 + MySQL Router 部署使用测试
  5. android data分区(标准)
  6. 分区表分区字段的update操作
  7. 拉丁超立方试验设计_南水北调工程通水 六年惠及超1.2亿人
  8. 微型计算机原理DL,微型计算机原理练习附解答.doc
  9. Android Studio打开项目提示找不到sdk路径的问题。
  10. Java多线程面试题(面试必备)
  11. pt100专用芯片_T100/PT1000温度传感器芯片-PT100温度传感器芯片
  12. php验证qq,php QQ第三方登录/OAuth2.0验证
  13. 计算机资源管理器经常停止运行,win7资源管理器反复停止工作的解决方法[多图]...
  14. 苹果M1芯片为何如此快?
  15. dxdiag是什么 dxdiag命令怎么用
  16. 五、NLP聊天语料处理
  17. ROS2机器人笔记20-08-02
  18. w7系统的云服务器,云服务器安装w7系统
  19. c语言中short作用,C语言short
  20. 艾宾浩斯遗忘曲线PHP,艾宾浩斯记忆遗忘曲线 复习计划表 网盘下载

热门文章

  1. mysql.host_mysql启动提示mysql.host 不存在,启动失败的解决方法
  2. oracle求数据关联度,关于数据挖掘关联规则的Oracle实现
  3. 集美大学诚毅学院计算机科学与技术学费,集美大学诚毅学院计算机科学与技术专业介绍...
  4. spark 序列化_spark shell 配置 Kryo 序列化
  5. 现代软件工程 第一章 四则运算的实现--栈实现
  6. 声明 static 变量注意事项
  7. CentOS安装scp命令
  8. 无限分级 层次输出 demo
  9. 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
  10. 视频数据训练太慢?试试UT-AustinFAIR提出的多重网格训练,加速4.5倍,还能提点!...