pga 作用
Oracle pga的作用
PGA 内存结构与功能解释:
PGA
├── 1. Private SQL Area
├── 2. Session Memory
├── 3. SQL Work Areas
│ ├── Sort Area
│ ├── Hash Area
│ ├── Bitmap Merge Area
│ └── Bitmap Create Area
└── 4. Stack Space
1. Private SQL Area(私有 SQL 区)
- 作用:存放每条 SQL 语句执行时需要的私有数据。
- 包括:
- 解析区(Parse Area):存放解析树、执行计划等。
- 绑定变量值。
- 游标上下文信息(如游标位置、执行状态)。
- 每个用户对一条 SQL 会拥有自己的 Private SQL Area。
2. Session Memory(会话内存)
- 作用:存储整个数据库会话相关的信息。
- 包括:
- 会话级变量(如 PL/SQL 包变量)
- 登录信息
- 客户端与服务器之间的交互数据结构
- 生命周期与数据库会话一致。
3. SQL Work Areas(SQL 工作区)
执行复杂 SQL 运算时会动态分配这些区域:
a. Sort Area(排序区)
- 用于排序操作:
ORDER BY
、GROUP BY
- 索引创建中的排序
- 若数据太大内存放不下,将使用临时表空间(TEMP 溢出)。
b. Hash Area(哈希区)
- 用于哈希连接或哈希聚合操作:
- 比如
HASH JOIN
,HASH GROUP BY
- 比如
- 小数据可在内存中处理,超出则写临时表空间。
c. Bitmap Merge Area(位图合并区)
- 用于合并多个位图索引结果。
- 出现在复杂的位图索引扫描场景中。
d. Bitmap Create Area(位图创建区)
- 用于创建新的位图索引。
- 例如:对一个大表建立位图索引时使用。
4. Stack Space(堆栈空间)
- 操作系统进程级空间,用于函数调用栈。
- 包含局部变量、函数参数、返回地址等。
- 不直接参与 SQL 运算,但对 PL/SQL 调用等必要。
总结表格:
区域名称 | 用途说明 |
---|---|
Private SQL Area | SQL 语句解析和执行上下文,包含解析区、绑定变量等 |
Session Memory | 数据库会话相关信息,如变量、连接信息 |
Sort Area | 排序操作所需内存 |
Hash Area | 哈希连接、哈希聚合操作内存 |
Bitmap Merge Area | 合并位图索引结果 |
Bitmap Create Area | 创建位图索引时用到 |
Stack Space | PL/SQL 或进程执行的调用堆
|
专用模式
PGA
├── UGA
│ ├── Private SQL Area
│ └── Session Memory
├── SQL Work Areas
└── Stack Space
共享模式
PGA
├── SQL Work Areas
└── Stack Space
SGA
└── UGA
├── Private SQL Area
└── Session Memory
1. 核心理解:UGA 是“用户会话级”内存,PGA 是“进程级”内存
Oracle 中:
- PGA 是每个后台进程/会话进程私有的内存区域。
- UGA(User Global Area) 是用来存储 用户会话的数据,比如:游标、绑定变量、会话变量等。
2. 不同服务器模式下,UGA 所在位置不同:
服务器模式 | UGA 存在位置 | 与 PGA 的关系 |
---|---|---|
Dedicated Server(专用) | PGA 内部 | UGA 就在 PGA 里 |
Shared Server(共享) | SGA 内部(Shared Pool 或 Large Pool) | 与 PGA 分离,PGA 仅用于临时运算 |
3. 那么你问的这几个 PGA 子区域,和 UGA 的关系如下:
PGA 子模块 | 是否属于 UGA? | 说明 |
---|---|---|
1. Private SQL Area | 是 UGA 的一部分 | 存放游标、绑定变量、解析状态等会话数据 |
2. Session Memory | 是 UGA 的一部分 | 存放会话级 PL/SQL 包变量、登录信息等 |
3. SQL Work Areas | 不是 UGA | 用于 SQL 运算(排序、哈希等),仅在 PGA 中,且是临时的 |
4. Stack Space | 不是 UGA | 是操作系统为进程提供的栈内存,和会话无关 |
4. 图示对比:
Dedicated Server(UGA 包含在 PGA 中)
PGA
├── UGA
│ ├── Private SQL Area
│ └── Session Memory
├── SQL Work Areas
└── Stack Space
Shared Server(UGA 移到 SGA)
PGA
├── SQL Work Areas
└── Stack SpaceSGA
└── UGA├── Private SQL Area└── Session Memory
5. 总结一句话:
Private SQL Area 和 Session Memory 属于 UGA,具体是放在 PGA 还是 SGA,要看服务器模式。其余的 SQL Work Areas 和 Stack Space 属于 PGA,不属于uga
相关文章:
pga 作用
Oracle pga的作用 PGA 内存结构与功能解释: PGA ├── 1. Private SQL Area ├── 2. Session Memory ├── 3. SQL Work Areas │ ├── Sort Area │ ├── Hash Area │ ├── Bitmap Merge Area │ └── Bitmap Create Area └── 4. Stack S…...
setup.py Pip wheel
. ├── my_package │ ├── __init__.py │ └── my_file.py └── setup.pymy_file.py def my_func():print("Hello World")setup.py from setuptools import setup, find_packages import datetimesetup(namemy_package, # 记得改version0.1.1,packag…...
GO 语言进阶之 时间处理和Json 处理
更多个人笔记见: github个人笔记仓库 gitee 个人笔记仓库 个人学习,学习过程中还会不断补充~ (后续会更新在github上) 文章目录 时间处理基本例子 Json处理基础案例 时间处理 时间格式化必须使用:2006-01-…...
对WireShark 中的UDP抓包数据进行解析
对WireShark 中的UDP抓包数据进行解析 本文尝试对 WireShark 中抓包的 UDP 数据进行解析。 但是在尝试对 TCP 中的 FTP 数据进行解析的时候,发现除了从端口号进行区分之外, 没有什么好的方式来进行处理。 import numpy as np import matplotlib.pyplot …...
Flannel后端为UDP模式下,分析数据包的发送方式(二)
发往 10.244.2.5 的数据包最终会经过物理网卡 enp0s3,尽管路由表直接指定通过 flannel.1 发出。以下以 Markdown 格式详细解释为什么会经过 enp0s3,结合 Kubernetes 和 Flannel UDP 模式的背景。 问题分析 在 Kubernetes 环境中,使用 Flanne…...

从 0 到 1:Spring Boot 与 Spring AI 深度实战(基于深度求索 DeepSeek)
在人工智能技术与企业级开发深度融合的今天,传统软件开发模式与 AI 工程化开发的差异日益显著。作为 Spring 生态体系中专注于 AI 工程化的核心框架,Spring AI通过标准化集成方案大幅降低 AI 应用开发门槛。本文将以国产大模型代表 ** 深度求索ÿ…...

upload-labs通关笔记-第20关 文件上传之杠点绕过
系列目录 upload-labs通关笔记-第1关 文件上传之前端绕过(3种渗透方法) upload-labs通关笔记-第2关 文件上传之MIME绕过-CSDN博客 upload-labs通关笔记-第3关 文件上传之黑名单绕过-CSDN博客 upload-labs通关笔记-第4关 文件上传之.htacess绕过-CSDN…...

Vscode +Keil Assistant编译报错处理
Vscode Keil Assistant编译报错处理 1.报错图片内容 所在位置 行:1 字符: 25 chcp.com 65001 -Command & c:\Users\92170.vscode\extensions\cl.keil-a … ~ 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(“&”)&…...
记录python在excel中添加一列新的列
思路是,先将需要添加为新的列存储到一个暂时的列表中,然后用到以下函数来存储 data_.loc[:, "新列的名字"] save_list_ 上面的save_list_就是暂时存储了信息的列表了。 以下是我的代码,供以后快速回忆。 schools_data {"98…...
WebRTC:实时通信的未来之路
WebRTC:实时通信的未来之路 目录 WebRTC:实时通信的未来之路一、背景介绍二、使用方式三、前途展望 一、背景介绍 随着互联网的飞速发展,实时音视频通信需求日益增长。传统的音视频通信多依赖于专有协议和插件(如Flash、ActiveX等…...
探索产品经理的MVP:从概念到实践
在产品开发的世界里,MVP(Minimum Viable Product,最小可行产品)是一个至关重要的概念。它不仅帮助团队快速验证假设,还能降低失败风险,为后续的产品迭代奠定坚实的基础。本文将深入探讨MVP的概念、重要性及…...
用python实现中国象棋
一.象棋规则 象棋是二人对弈的棋类游戏,棋盘由 9 条竖线和 10 条横线交叉构成,中间 “河界” 分楚汉,两端 “九宫” 各 9 个交叉点。棋子分红黑,各 16 枚,含 7 兵种。 1.棋子走法 1.1 红方棋子 帅:1 个…...
GO 语言基础3 struct 结构体
更多个人笔记见: github个人笔记仓库 gitee 个人笔记仓库 个人学习,学习过程中还会不断补充~ (后续会更新在github上) 文章目录 strcut结构体基本例子传入数值和指针的区别初始化方法汇总结构体特点结构体方法定义基于…...

VSCode C/C++ 开发环境完整配置及一些扩展用途(自用)update:2025/3/31
这里主要记录了一些与配置相关的内容。由于网上教程众多,部分解决方法并不能完全契合我遇到的问题,因此我选择以自己偏好的方式,对 VSCode 进行完整的配置,并记录在使用过程中遇到的问题及解决方案。后续内容也会持续更新和完善。…...
iOS 上线前的性能与稳定性检查流程实录:开发者的“最后一公里”(含 KeyMob 应用经验)
一个 iOS 项目写完功能、跑完测试,离上线只差一步了——但很多问题恰恰就在“这最后一公里”暴露:某些设备发热严重,部分流程偶发卡顿,某些崩溃只有长时间运行后才出现。 今天我分享的是我在多个 iOS 项目上线前实际执行过的性能…...

Docker系列(二):开机自启动与基础配置、镜像加速器优化与疑难排查指南
引言 docker 的快速部署与高效运行依赖于两大核心环节:基础环境搭建与镜像生态优化。本期博文从零开始,系统讲解 docker 服务的管理配置与镜像加速实践。第一部分聚焦 docker 服务的安装、权限控制与自启动设置,确保环境稳定可用;…...

a16z:AI带来了全新的9种开发软件的模式
非常有启发的9条新兴模式,推荐给已经上手 vibeCoding 的读者们。 开发者正在将 AI 从简单的工具转变为构建软件的新基础。许多核心概念,如版本控制、模板、文档,甚至用户的定义,都在被重新思考。代理(Agent)…...
20.迭代器模式:思考与解读
原文地址:迭代器模式:思考与解读 更多内容请关注:深入思考与解读设计模式 引言 在软件开发中,尤其是在处理集合数据时,你是否曾经遇到过这样的问题:你需要遍历一个集合(如数组、列表、集合等)…...
Java 学习笔记:注解、泛型与 IO 流
目录 课程目标 Java 注解(Annotation) 1. 概念与作用 2. 自定义注解示例 3. JDK 内置注解 4.注释 Java 泛型(Generics) 1. 基本语法 2. 通配符与上下限 3. 常见应用场景 Java IO 流 1. 流的分类1.File文件类 2. 字节流与字符流 3. 经典示例:文件拷贝 总结与…...

在 Excel 使用macro————仙盟创梦IDE
Dim filePath As StringDim fileContent As StringDim lines() As StringDim dataArray() As StringDim lineCount As LongDim maxCols As LongDim i As Long, j As Long 文件路径filePath "" 检查文件是否存在If Dir(filePath) "" ThenMsgBox "文件…...
【MySQL】08.视图
视图就是一个由查询到的内容定义的虚拟表。它和真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 1. 基本使用 mysql> select * from user; -------------------- | id | age | name …...

鸿蒙devEco studio如何创建模拟器
官网原文链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-emulator-create 操作步骤 点击菜单栏的Tools > Device Manager,点击右下角的Edit设置模拟器实例的存储路径Local Emulator Location,Mac默认存储在~/…...

鸿蒙路由参数传递
页面test.ets 代码如下: import router from ohos.router Entry Component struct Test {State message: string Hello WorldState username: string huState password: string 1build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWe…...

springboot 控制层调用业务逻辑层,注入报错,无法自动装配 解决办法
报错: 解决:愿意是业务逻辑层,即service层的具体实现类没有加注解Service导致的,加上解决了!!...

MySQL:11_事务
事务 一.CURD不加控制,会有什么问题? 二.什么是事务? 事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制…...

Linux中的文件系统和软硬连接
磁盘的访问方式 CHS(柱面,磁头,扇区) 法(磁盘硬件查找): 确定柱面(C) 磁头臂移动到对应的柱面位置。例如,柱面号为 5,则磁头移动到第 5 个磁道组…...
并发容器(Collections)
一、并发安全问题根源 1. List(如ArrayList) 问题表现:多线程同时调用add、remove等方法时,可能抛出ConcurrentModificationException或导致数据不一致。根本原因: 非原子性操作:如add操作的流程…...
SPA模式下的es6如何加快宿主页的显示速度
SPA的模式下,宿主页是首先加载的页面,会需要一些主要的组件,如element-plus,easyui,devextreme,ant-design等,这些组件及其依赖组件,文件多,代码量大,可能导致…...
windows powershell 判断 进程号是否存在
在 Windows PowerShell 中,你可以使用多种方法来检查一个特定的进程号(PID)是否存在。以下是几种常用的方法: 方法1:使用 Get-Process 命令 你可以尝试获取具有特定 PID 的进程。如果该进程存在,Get-Proce…...
c# 解码 encodeURIComponent
在C#中,如果你需要解码由encodeURIComponent方法编码的URL,你可以使用System.Web命名空间中的HttpUtility.UrlDecode方法。这个方法可以处理由JavaScript的encodeURIComponent方法编码的字符串。 首先,确保你的项目中引用了System.Web命名空…...