【赵强老师】Oracle数据库的内存结构
  1. 赵强老师实战微课

    1. 录播
      Oracle数据库的内存结构
      7分钟

对课程感兴趣?

点击报名,听课时长可兑换余额哦~

【赵强老师】Oracle数据库的内存结构免费

最近在学 5 累计报名 32 好评度 -
咨询老师
用手机看

扫一扫继续用手机看

  • 微信扫码

  • QQ扫码

下载手机APP

课程概述

目录

往期学员作业()

评论

老师介绍

  • 赵强老师

    赵强老师

    赵强老师,清华大学软件工程专业毕业。京东大学大数据学院院长,Oracle(中国)高级技术顾问。精通大数据、Oracle数据库、NoSQL数据库,以及中间件技术
简  介 【赵强老师】Oracle数据库的内存结构

每个数据库实例有两个关联的内存结构—系统全局区(SGA),程序全局区(PGA)。

  • 系统全局区(SGA):一组共享的内存结构(称为SGA 组件),其中包含一个OracleDB 实例的数据和控制信息。SGA 由所有服务器进程和后台进程共享。SGA 中存储的数据有高速缓存的数据块和共享SQL 区域等;

  • 程序全局区(PGA):包含某个服务器进程或后台进程的数据及控制信息的内存区域。PGA 是Oracle DB 在服务器进程或后台进程启动时创建的非共享内存。服务器进程对PGA 的访问是独占式的。每个服务器进程和后台进程都具有自己的PGA。


就SGA几个关键组件做以说明:

  • 共享池:用于缓存可在用户间共享的各种构造,比如给定SQL 语句的语法分析树和执行计划;、

  • 数据库缓冲区高速缓存:从数据库中检索到的数据块是缓存在此,数据块从此内存组件对数据块进行操作,降低了硬盘IO负担,如果用户进程所需的数据在该区域能很找到,我们称之为高速缓存区命中,高的命中率反映出来的效果就是操作反应快,这点很好理解,数据库优化中很有必要考虑这点;

  • KEEP缓冲区池:一种专用数据库缓冲区高速缓存,用于长时间在内存中保留数据块。一些频繁使用的数据块可相对长期的保留在此,不至于每次都从硬盘获取,从而优化了数据库的性能;

  • RECYCLE 缓冲区池:一种专用数据库缓冲区高速缓存,用于从内存中快速回收或删除数据块。相对于KEEP的对立面,很好理解;

  • nK缓冲区高速缓存:多种专用数据库缓冲区高速缓存中的一种,用于存放大小不同于默认数据库块大小的数据块。注意默认数据块为8K;

  • 重做日志缓冲区:用于存放有关对数据库所做更改的信息,重做信息在写入磁盘中重做日志文件(即redo文件)前,将缓存在此处。重做日志写入磁盘的频率很高,什么时间什么条件下写都是挺有意思的知识。

  • 大型池:用于为某些大型进程(例如Oracle 备份和恢复操作)和I/O 服务器进程提供大型内存分配;

* 课程提供者:赵强