2、Oracle内存结构

  • 系统全局区(SGA),也叫共享全局区。

1、数据缓冲区(Data Buffer Cache):

用于存储从磁盘数据文件中读取的数据,供所有用户共享。用户修改数据后,修改后的数据先保存在数据库缓冲区中,最后由DBWn进程写入磁盘数据文件。

2、日志缓冲区(Redo Log Buffer Cache):

用于存储数据库的修改操作信息。当日志缓冲区中的日志数据达到一定限度时,由日志写入进程LGWR写入磁盘日志文件。

3、共享池(Shared Pool):

用于保存最近执行的SQL语句、PLSQL程序的数据字典信息,它是对SQL语句和PLSQL程序进行语法分析、编译和执行的内存区域。

(1).库缓冲区(library cache):SQL语句的分析码和执行计划;

(2).数据字典缓冲区(data dictionary cache):数据字典中得到的表、列定义和权限;

(3).用户全局区(user globalarea):保存用户的会话信息。

  • 程序全局区(PGA)

是包含单个用户(或服务器)数据控制信息的内存区域。PGA不是共享区,只有服务器本身才能访问自己的PGA,它主要用来保存用户在编程时使用的变量数组等。

  • 排序区(Sort Area)

Oracle系统为排序操作所产生的临时数据,提供的内存空间。在Oracle中,存放用户排序操作所产生的临时数据的区域有两个,内存排序区和临时表空间,优先使用内存排序区进行排序操作,如果内存空间不够,再使用磁盘临时段。

性能调优知识点:

Oracle尽量使用内存排序。

select name,value from v$sysstat where name like ‘%sort%‘; 

sorts(memory)表示内存排序量, sorts(disk)表示磁盘序量。

失败率 = sort(disks)/sorts(memory)  ×100%  排序区的失败率不得小于5%,否则必须增加排序sort_area_size的大小,使得Oracle尽量使用内存排序。磁盘IO的调整就是把数据文件放在多个不同的磁盘上。

  • 大池(Large Pool)

用于提供一个大的缓冲区供数据库的备份与恢复操作。

  • Java池(Java Pool)

用于在数据库中支持java的运行。

时间: 2024-10-06 15:52:41

2、Oracle内存结构的相关文章

Oracle内存结构(之三)

[深入解析--eygle] 学习笔记 1.2.3 PGA的管理: [email protected] SQL>show parameter area_size NAME TYPE VALUE ------------------------------------ ---------------------------------------------------- bitmap_merge_area_size integer 1048576 create_bitmap_area_size i

ORACLE内存结构简介

ORACLE数据库作为世界上一款功能强大的数据库管理软件,功能体系特别庞大.我们有必要对它的每一部分学习了解,然后才从全局的角度进行有效把握.我们会着重从理论基础体系角度再逐步到实战应用.实际上,如果没有掌握基础理论体系,而直接生搬硬套一些维护技术经验,那也只是空中楼阁罢了.而如果你想直接通过一两篇文章学到什么秘籍成为维护或是DB优化高手那也是不现实的.所以这些文适合静下心来真正想了解学习ORALCE体系的读者.方法论掌握好,起码头脑中的思路方向是正确的,至于术也就是水到渠成. 我们通常所说的O

oracle 内存结构详解

Oracle 内存结构 与 Oracle 实例关联的基本内存结构包括: 系统全局区 (SGA):由所有服务器和后台进程共享.SGA 中存储的数据示例包括高速缓存的数据块和共享 SQL 区域. 程序全局区 (PGA):各个服务器进程和后台进程专用,每个进程都有一个 PGA. SGA 是共享内存区,包含实例的数据和控制信息,由以下各项组成: 数据库缓冲区高速缓存:用于缓存从磁盘检索到的数据块 重做日志缓冲区:用于缓存重做信息,直到其可以写入磁盘为止 共享池:用于缓存可在用户间共享的各种结构 大型池:

oracle内存结构(一)

Oracle 内存结构 与Oracle 实例关联的基本内存结构包括: 系统全局区(SGA):由所有服务器进程和后台进程共享 程序全局区(PGA):由每个服务器和后台进程专用,每个进程都有一个PGA. 系统全局区(SGA) 是共享内存区,包含实例的数据和控制信息,由以下各项组成: 数据库缓冲区高速缓存(DB buffer cache):用于缓存从磁盘检索到的数据块 重做日志缓冲区(redo buffer):用于缓存重做信息,直到其可以写入磁盘为止 共享池(share pool):用于缓存可在用户间

oracle内存结构

一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个服务进程.后台进程专有:每个进程都有一个PGA. 二.SGA 包含实例的数据和控制信息,包含如下内存结构: 1)Database buffer cache:缓存了从磁盘上检索的数据块. 2)Redo log buffer:缓存了写到磁盘之前的重做信息. 3)Shared pool:缓存了各用户间可共享的各种结构. 4)Large pool:一个可选

[精]Oracle 内存结构详解

内存结构 现代计算机中,CPU 对内存的访问速度要比从磁盘的速度快千倍,因此 Oracle 对于数据的访问 也尽量都在内存中完成,而不是直接修改硬盘上的数据.内存内容在合适的时候再同步到磁盘. Oracle 利用内存来克服磁盘 IO的束缚,在内存中进行活动越多,系统性能越好,反之,在磁盘上进 行的操作越多,系统性能越差.(原文地址:http://blog.sunansheng.com/2016/04/29/oracle-memory/) Oracle 是一个内存消耗大户,它消耗的内存可以分成两部

Oracle内存结构:SGA PGA UGA

内存结构是oracle数据库最重要的组成部分之一,在数据库中的操作或多或少都会依赖到内存,是影响数据库性能的重要因素Oracle数据库中包括3个基本的内存结构: 一. 系统全局区  (System Global Area, SGA): SGA是一组共享内存结构, 被所有的服务和后台进程所共享.当数据库实例启动时,系统全局区内存被自动分配.当数据库实例关闭时,SGA内存被回收. SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素. 查询SGA区的情况: SQL> show SGA T

oracle 内存结构 share pool sql解析的过程

1.sql解析的过程 oracle首先将SQL文本转化为ASCII字符,然后根据hash函数计算其对应的hash值(hash_value).根据计算出的hash值到library cache中找到对应的bucket,然后比较bucket里是否存在该SQL语句. 如果不存在,获得shared pool latch,然后在shared pool中的可用chunk链表(也就是bucket)上找到一个可用的chunk,然后释放shared pool latch.在获得了chunk以后,这块chunk就可

oracle进程结构简介

我们经常说数据库实例,实例其实就是指的是数据库的内存结构和进程结构.我们安装数据库软件大量的是在安装其内存和进程组件结构.上篇节我们介绍了oracle内存结构,这节就介绍下oracle进程结构. 首先看下oracle进程的分类: 1)用户进程 是连接到Oracle DB 的应用程序或工具 2)数据库进程 服务器进程:连接到Oracle实例,在用户建立会话时启动 后台进程:在启动Oracle实例时启动 3) 守护程序/应用程序进程 网络监听程序 Gridinfrastructure 守护程序 从进