oracle数据库缓存 c,Oracle 19c数据库体系结构-2

一、

System Global Area

ba5dc9d61f4c21e61be5e1ba381d415f.png

Oracle 19c SGA

系统全局区域

(SGA)

是包含数据和控制信息的内存区域

Oracle

数据库实例。所有服务端和后台进程共享

SGA

。启动数据库实例时,会显示为

SGA

分配的内存量。

SGA

包括以下数据结构

:

Shared pool:

该组件缓存各种可以在用户之间共享的结构

;

例如,共享池存储已解析的存储

SQL

PL/SQL

代码、系统参数、数据字典信息。共享池几乎涉及到数据库中发生的所有操作。例如,如果用户执行

SQL

语句,

Oracle

数据库将访问共享池。

Flashback buffer:

该组件是

SGA

中的一个可选组件。当

Flashback

数据库被启用时,后台进程

Recovery Writer process (RVWR)

会启动。

RVWR

会周期性地将修改后的数据块从

buffer cache

拷贝到

flashback buffer

中,然后将

flashback

数据库中的数据按顺序写入到

flashback

数据库日志中,并循环重用。

Database buffer cache:

该组件是存储从数据文件中读取的数据块副本的内存区域。缓冲区是一个主内存地址,缓冲区管理器在其中临时缓存当前或最近使用的数据块。所有并发连接到数据库实例的用户共享对缓冲区缓存的访问。

Database Smart Flash cache:

数据库缓冲区缓存的可选内存扩展是否适用于

Solaris

上运行的数据库

甲骨文

Linux

。它为数据库块提供了一个二级缓存。对于读密集型在线事务处理

(OLTP)

工作负载和数据仓库

(DW)

环境中的临时查询和批量数据修改,它可以提高响应时间和总体吞吐量。数据库智能闪光高速缓存驻留在一个或多个闪存盘设备上,这些设备是使用闪存的固态存储设备。数据库智能闪存缓存是一种通常比额外的主存更经济的技术。

Redo log buffer:

该组件是

SGA

中的一个循环缓冲区,保存有关对数据库所做更改的信息。该信息存储在重做条目中。重做条目包含重构所需的信息

通过数据操作语言

(DML)

、数据定义语言

(DDL)

或内部操作对数据库进行的更改

(

或重做

)

。如果需要,重做条目用于数据库恢复。

Large pool:

该组件是一个可选的内存区域,用于比共享池更大的内存分配。大池可以为共享服务器的用户全局区域

(UGA)

Oracle XA

接口

(

用于事务与多个数据库交互

)

、语句并行执行时使用的消息缓冲区、用于恢复的缓冲区提供大量内存分配

管理器

(RMAN) I/O

奴隶和延迟插入。

In-Memory Area:

该组件是一个可选组件,它允许对象

(

表、分区和其他类型

)

以一种称为

columnar

格式的新格式存储在内存中。这种格式使扫描、连接和聚合的执行速度比传统的磁盘上格式快得多,从而为

OLTP

DW

环境提供了快速的报告和

DML

性能。这个特性对于分析应用程序特别有用,因为分析应用程序操作几行返回许多行,而

OLTP

操作几行返回许多列。

Memoptimize Pool:

该组件是一个可选组件,为基于键的查询提供高性能和可伸缩性。

Memoptimize Pool

包含两部分,

Memoptimize buffer area

hash index

。快速查找使用

memoptimization

池中的哈希索引结构,提供对给定表块的快速访问

(memoptimization

为读启用

)

,永久固定在缓冲区缓存中,以避免磁盘

I / O

memoptimization

池中的缓冲区完全独立于数据库缓冲区缓存。散列索引是在配置

Memoptimized

行存储时由数据库创建的。

Shared I/O pool (SecureFiles):

该组件用于安全文件大对象

(lob)

上的大型

I/O

操作。

lob

是一组设计用来保存大量数据的数据类型。

SecureFile

LOB

存储参数,支持重复数据删除、加密和压缩。

Streams pool:

该组件用于

Oracle Streams

Data Pump

GoldenGate

集成捕获和应用流程。的

Streams pool

存储缓冲的队列消息,并为

Oracle Streams

捕获进程和应用进程提供内存。除非您特别配置它,否则流池的大小从

0

开始。当使用

Oracle Streams

时,池的大小会根据需要动态增长。

Java pool:

该组件用于

Java

虚拟机

(JVM)

中所有特定于会话的

Java

代码和数据。

Java

池内存的使用方式不同,这取决于

Oracle

数据库运行的模式。

Fixed SGA:

该组件是一个内部管理区域,包含关于数据库和数据库实例的状态的一般信息,以及进程之间通信的信息。

二、

Program Global Area

ae9ea78c653a129e9ad7f76d84813c4f.png

Oracle 19c PGA

PGA (Program Global Area)

是一个非共享内存区域,它包含服务器和后台进程专用的数据和控制信息。

Oracle

数据库创建服务器进程来代表客户端程序处理到数据库的连接。在专用服务器环境中,为每个启动的服务器和后台进程创建一个

PGA

。每个

PGA

由堆栈空间、哈希区、位图合并区和用户全局区

(UGA)

组成。当使用

PGA

的关联服务器或后台进程终止时,

PGA

将被释放。

在共享服务器环境中,多个客户端用户共享服务器进程。

UGA

被移到大池中,只给

PGA

留下堆栈空间、散列区域和位图合并区域。

在专用服务器会话中,

PGA

由以下组件组成

:

SQL

工作区域

:

排序区域由对数据进行排序的函数使用,例如

Order BY

GROUP BY

会话内存

:

这个用户会话数据存储区域分配给会话变量,例如登录信息和数据库会话所需的其他信息。

OLAP

池管理

OLAP

数据页,它相当于数据块。

私有

SQL

区域

:

该区域保存有关已解析

SQL

语句的信息和其他用于处理的特定于会话的信息。当服务器进程执行

SQL

PL/SQL

代码时,该进程使用私有

SQL

区域存储绑定变量值、查询执行状态信息和查询执行工作区。同一个或不同会话中的多个私有

SQL

区域可以指向

SGA

中的单个执行计划。持久区域包含绑定变量值。运行时区域包含查询执行状态信息。

堆栈空间

:

堆栈空间是分配给保存会话变量和数组的内存。

哈希区

:

用于对表进行哈希连接。

位图合并区域

:

该区域用于合并多个位图索引扫描得到的数据。

-the end-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值