PGA

news/2024/7/20 15:56:55 标签: 内存管理, 数据库, 移动开发

---------程序全局区 (PGA)


程序全局区 (PGA) 是包含某服务器进程的数据及控制信息的内存区。
这是 Oracle 服务器在服务器进程启动时创建的非共享内存,只有该服务器进程才能访问。
Oracle 实例的所有服务器进程分配的 PGA 总内存,也称为该实例分配的聚集 PGA 内存。
使用共享服务器时,部分 PGA 可位于 SGA 中。

PGA 内存通常包含以下各项:


专用 SQL 区  、游标和 SQL 区、工作区、会话内存

专用 SQL 区
专用 SQL 区包含绑定信息和运行时内存结构等数据。这些信息是每个会话的 SQL 语句调用所特有的;在其它方面,绑定变量有不同的值,游标的状态也不同。发出 SQL 语句的每个会话都有一个专用 SQL 区。提交同一 SQL 语句的每个用户也都有其自己的专用 SQL区,该专用 SQL 区使用一个共享 SQL 区。这样,许多专用 SQL 区可与同一个共享 SQL区关联。专用 SQL 区的位置取决于为会话建立的连接类型。

如果会话是通过专用服务器连接的,则专用 SQL 区位于该服务器进程的 PGA 中。
不过,如果会话是通过共享服务器连接的,则部分专用 SQL 区将保留在 SGA 中。


游标和 SQL 区


Oracle 预编译器程序或 OCI 程序的应用程序开发人员可以显式打开特定专用 SQL 区的游标或句柄,并在该程序的整个执行过程中将它们用作命名资源。数据库为某些 SQL 语句隐式发出的递归游标也使用共享 SQL 区。


工作作区


对于复杂查询(例如,决策支持查询),会将大部分 PGA 供内存密集型运算符分配的
工作区专用,例如:
基于排序的运算符(如 ORDER BY、GROUP BY、ROLLUP)和窗口函数
散列联接
位图合并
位图创建
批量装载操作使用的写缓冲区
排序运算符使用工作区(排序区),对一组行执行内存中排序。与此类似,散列联接运算
符使用工作区(散列区),根据其左侧输入内容生成散列表。

工作区的大小是可以控制和优化的。通常,较大的工作区可以显著改进特定运算符的性能,不过代价是消耗较多的内存。


会话内存


会话内存是用于存放会话的变量(登录信息)以及与会话相关的其它信息的内存。对于共享服务器,会话内存是共享的,而不是专用的。


----------自动 PGA 内存管理


根据 PGA_AGGREGATE_TARGET 参数,动态调整
专用于工作区的 PGA 内存量
有助于最大限度地提高所有内存密集型 SQL 操作的性能
默认情况下是启用的


理想情况下,工作区的大小只要能容纳其相关 SQL 运算符分配的输入数据和辅助内存结构就已足够。这一大小称为工作区的最佳大小。工作区大小小于最佳大小时,响应时间就会增加,因为要对部分输入数据执行额外的传输操作。


自动 PGA 内存管理功能简化并改进了 PGA 内存的分配方式。默认情况下,PGA 内存管理功能是启用的。在此模式下,Oracle 数据库以 SGA 内存大小的 20% 为基准,动态调整
专用于工作区的那部分 PGA 内存的大小。最小值为 10 MB。


在自动 PGA 内存管理模式下运行时,所有会话的工作区大小的调整都是自动的,

在任何给定时间,可用于实例中各活动工作区的 PGA 内存总量自动从
PGA_AGGREGATE_TARGET 初始化参数派生。此内存量设置为
PGA_AGGREGATE_TARGET 值减去系统其它组件分配的 PGA 内存量(例如,会话分配的
PGA 内存)。由此得到的 PGA 内存随后按照各活动工作区的特定内存需求分配给相应的工作区。


--PGA 管理资源


配置新实例时,难以确切知道 PGA_AGGREGATE_TARGET 的适当设置。该设置可以通过

以下三个阶段确定:


1.根据惯例,初步估算 PGA_AGGREGATE_TARGET。默认情况下,Oracle DB 将其设
置为 SGA 大小的 20%。不过,对于大型 DSS 系统而言,此初始设置可能太低。
2.在实例上运行典型工作量,使用 Oracle 收集到的 PGA 统计信息监视性能,查看最大 PGA 大小的配置是过低还是过高。
3.使用 Oracle PGA 建议统计信息来优化 PGA_AGGREGATE_TARGET。


为了能够向后兼容,可以通过将 PGA_AGGREGATE_TARGET 初始化参数值设置为 0,
来禁用自动 PGA 内存管理。禁用了自动 PGA 内存管理功能后,可以使用关联的
*_AREA_SIZE 参数调整工作区的最大大小。以下是这些参数的示例:

SORT_AREA_SIZE 
HASH_AREA_SIZE
BITMAP_MERGE_AREA_SIZE
  CREATE_BITMAP_AREA_SIZE


---------------使用内存指导调整 SGA 的大小


使用内存指导可以优化内存结构的大小。如果启用了自动管理共享内存功能,则可以使
用该功能优化 SGA 的总大小。如果禁用了 ASMM,则可以使用此指导来优化 SGA 的不同组件。

内存指导包括三个指导:
共享池
缓冲区高速缓存
主页---相关链接---指导中心----内存指导----共享池或缓冲区高速缓存--建议


使用内存指导调整 PGA 的大小
可使用内存指导获取有关 PGA 大小的建议。单击“PGA”选项卡,然后单击
“Advice(建议)”。

转载于:https://www.cnblogs.com/ios9/p/7660937.html


http://www.niftyadmin.cn/n/1575827.html

相关文章

LAMP 之 自动化编译安装

1 概述LAMP 目前在CentOS6不支持php-fpm的安装,安装高版本的数据库在centos6上也需要通过编译安装完成,本文介绍了Modules模式和FastCGI模式快速部署LAMP的包和相关操作,同时附上了一键安装的编译脚本。2 快速部署LAMP在CentOS6和7中&#x…

py-16-MyBatis

目录: 01: MyBatis基础CRUD操作 02: 接口实现 03: 动态排序、日志配置、缓存配置 04 : 高级映射、延迟加载、动态SQL 01: MyBatis基础CRUD操作 框架(Framework) MyBatis 1. MyBatis 简介 …

py-17-AJAX

目录: day01:AJAX AJAX 1.1. Ajax 是什么 11.2. Ajax 解决了什么问题 …

IO流体系

IO流体系 4.1 IO流分类: I:Input:输入 O:output:输出 按照流向分: 输入流:InputStream 输出流:OutputStream 输入流:读数据 输出流:写数据 参数物:内存和硬盘 按照…

vue2.0 axios interceptors 拦截器

2019独角兽企业重金招聘Python工程师标准>>> 官方文档地址: https://github.com/axios/axios#axiosposturl-data-config main.js 文件中配置 import axios from axios// 拦截request,设置全局请求为ajax请求 axios.interceptors.request.use((config) > {config.…

py-05-JAVAAPI1

目录: 1、day01-OOP部分知识点、JDK API、文档注释、String。 2、day02-String、StringBuilder、构造方法、日期操作 3、day03-Calendar、Object类、包装类、Number、正则表达式 4、day04-正则表达式、集合Collection、迭代器 5、day05- List集合、队列:Queue…

IL查看委托

文章目录[点击展开](?)[] 查看委托的IL委托示例代码示例解释示例运行结果查看ILIL代码IL解析文献资料查看委托的IL 通过IL来查看委托的原理, 委托示例代码 写一个委托的类如下 using System; namespace MyCollection { //定义一个类,该类包含两个静态方…

py-04-JAVAOOP

目录: 1、day01-产生各对象并写出移动的方法(类和对象、构造方法) 2、day02- 抽出敌人父类(数组、继承、重写) 3、day03- 各对象加载图片、使各对象移动(向上造型、访…