最近在学习PGA时有一点心得,特此记下,以备查.
ORACLE官方文档对PGA解释如下“areas used by memory-intensive SQL operators such as sort, group-by, hash-join, bitmap merge, and bitmap create。”很明显PGA是用于SQL排序和哈希连接,位图创建所用的内存区域,当排序空间超过100M或者PGA的 5%时,ORACLE会选择在TEMP表空间继续进行排序,所以理论上说PGA越大,数据库性能应该越好,应该尽量增加该部分的空间大小,不过增加该部分空间可能会对SQL语句的执行计划产生影响,所以在修改PGA时要经过测试确认.
对SGA修改时,并不是越大越好,当SGA过大时会导致library cache,dictionary cache命中率下降,从而对系统性能产生负面影响,PGA主要是排序操作,所以相对SGA来说过大的PGA并不会带来多么严重的性能下降,只会降低HASH JOIN的成本,从而使优化器更多的选择使用HASH JOIN.
将PGA的管理交给ORACLE内存管理器是一个不错的选择,绝大多数据时候比手工设置各个值要好的多,只不过在ORACLE 9I共享服务器时无法使用PGA自动管理特性.
可以通过下面的SQL查询来大致确认PGA是否够用:
select name,value,unit from v$pgastat where name in('aggregate PGA target parameter','maximum PGA allocated');
当maximum PGA allocated相对于aggregate PGA target parameter过大时,则说明PGA偏小了,需要增加空间.
分享到:
相关推荐
SGA+PGA最好不要超过总内存的70%,内存详细调整方案,供学习。
Oracle数据库系统是企业级数据管理的重要工具,其中的SGA(System Global Area)和PGA(Program Global Area)是两个核心概念,对于理解Oracle数据库的工作原理至关重要。本文将深入探讨这两个概念,以及它们在...
Oracle数据库的内存结构主要包括三个关键部分:System Global Area (SGA), Program Global Area (PGA), 和 User Global Area (UGA)。这些区域都是用于存储和处理数据库操作的数据和信息。 1. **System Global Area ...
在Oracle数据库管理系统中,优化数据库性能往往涉及到对其内部结构的理解与微调,尤其是针对内存资源的合理分配。本文将深入探讨Oracle实例的内存管理机制,重点讲解系统全局区(SGA)与程序全局区(PGA)的组成部分...
在Oracle数据库管理中,了解和优化程序全局区(PGA)和系统全局区(SGA)的内存分配至关重要,这直接关系到数据库服务器性能的高效运行。以下是对PGA、SGA以及如何合理配置数据库服务器内存的深入解析。 ### PGA...
"ORACLE性能调整-调整内存分配"的主题着重于如何通过精细调整Oracle数据库的内存结构来提升系统性能。在Oracle环境中,内存管理是决定数据库运行效率的关键因素,因为它直接影响到数据读取速度、查询响应时间和系统...
### Oracle内存分配与调整——详解冯春培的文章 #### 一、引言 在Oracle数据库管理系统中,内存管理是一项至关重要的任务。不合理的内存配置可能导致性能下降甚至系统故障。冯春培作为一位经验丰富的Oracle专家,...
通过对Oracle初始化参数的调整,可以有效地管理和优化数据库的资源分配,从而提高系统的性能和稳定性。在调整过程中需要注意的是,每个参数的具体数值应根据实际的工作负载和系统资源情况来确定,以达到最佳的配置...
1. 使用自动内存管理:Oracle 10g及以后版本引入了自动内存管理,DBA可以设置一个总的内存预算,让Oracle自动分配SGA和PGA。 2. 分析工作负载:通过监控工具如AWR(Automatic Workload Repository)和ASH(Active ...
在Oracle 10g中,引入了动态内存分配特性,使得创建一个自调整的Oracle SGA成为可能。这一特性允许数据库根据实际的处理需求动态地调整内存区域的大小,如sort_area_size、pga_aggregate_target、large_pool_size、...
为了更好地管理SGA的内存分配,可以启用ASMM(Automatic Shared Memory Management)。启用ASMM后,Oracle将根据系统负载动态调整SGA的各个内存区域大小。要启用ASMM,需要设置`sga_target`参数,并确保`statistics_...
本文将深入探讨Oracle 10g在内存管理方面的知识,包括内存结构、内存区域的划分、内存分配策略以及常见问题的解决办法。 1. **Oracle内存结构** Oracle数据库内存主要分为两个主要部分:SGA(System Global Area)...
- **自动内存管理**:Oracle 10g及以上版本提供了自动内存管理功能,可以自动调整SGA和PGA大小,但需要设置合适的最大和最小值。 - **手工调整**:对于特定场景,如大量并行操作或大数据集处理,可能需要手动调整...
"Oracle内存资源分配"是数据库管理员必须掌握的关键技能,它涉及到Oracle数据库系统的Shared Global Area (SGA) 和Program Global Area (PGA) 的配置与调整。 首先,SGA是Oracle数据库运行时共享内存的主要区域,它...
- **自动内存管理(Automatic Memory Management)**:Oracle 10g引入的特性,允许DBA设置总的SGA和PGA大小,Oracle自动分配各个组件的内存。 - **内存顾问(Memory Advisor)**:提供调整内存分配的建议,通过分析...
Oracle 10g中的大量初始化参数(如PGA_AGGREGATE_TARGET、SGA_MAX_SIZE等)对性能有直接影响。根据实际负载情况调整这些参数,可以显著提升数据库运行效率。 ### 8. 使用诊断工具和监控技术 Oracle 10g提供了丰富...
注意:在 Oracle 11g 中,`sga_max_size` 不能大于 `memory_max_size`。 3. **重启数据库实例**: 修改参数后,需要立即关闭并重新启动数据库实例以应用更改: ``` shutdown immediate; start up; ``` 4. **...
OracleSGA和PGA管理