10g中需要设置workarea_size_policy为AUTO,并设置pga_aggregate_target参数来实现PGA的内存管理。
pga_aggregate_target参数可以根据经验值进行设置,评估PGA的简单方法可以查看AWR报告中的PGA命中率(PGA Cache Hit%),以及分析direct path read temp和direct path write temp等待事件是否比较高,这些等待表示PGA设置参数有限而导致大量临时表空间操作出现的等待事件。当然还有复杂的评估PGA的方法,以后再看吧。
注意,9I的shared server连接需要明确设置SORT_AREA_SIZE 和 HASH_AREA_SIZE,也就是说不能用自动管理模式。10G则无此限制。
PGA_AGGREGATE_TARGET是一个上限(理论上的最大值,PL/SQL就很容易超过),ORACLE启动时并不分配那么多,你甚至可以设置大于物理MEM的大小(生产库不要这么做呀,要设置pga_aggregate_target+sga<MEM ,别挑战ORACLE的极限)。一个SESSION可能有多个sort,hash的workarea,每一个workarea最多会用到5%或100M(由两个隐藏参数控制),因此如果预计每个sort,hash的workarea是5M,应该设置PGA_AGGREGATE_TARGET成100M。但是,随着用户的增加或工作量的增大,给每个workarea的容量可能会减少,因为有总量PGA_AGGREGATE_TARGET的限制,比如需要100个workarea,那么每个只能分配到1M。parallel query会用到最多30%(由隐藏参数控制)的PGA_AGGREGATE_TARGET,每一个parallel query的PIECE会分配相应的30%,也就是parallel query可能会用到30M,10个PARALLEL,那么每个用3M。这也就是建议用auto管理的原因,一个系统通常workload,session是随时间变化的,早上可能3个用户,中午可能300个用户,所以用固定sort,hash的参数是不合时宜的.自动管理才可以实现在用户并发少的时候分配更多的内存,在并发多的时候照顾大众,分配少的内存。ORACLE 9.2以后有了PGA advisory。这一段中所说的5%,30%不知是否正确,没有时间看oracle文档,在此
提醒一下自己。
v$pgastat:
几个重要参数的说明:
aggregate PGA target parameter 设置的pga的目标参数值
aggregate PGA auto target 在自动管理模式下,oracle工作区可使用的pga
total PGA inuse 当前实例使用的pga
total PGA allocated 当前实例实际分配的pga
maximum PGA allocated 可分配的最大pga
over allocation count ORACLE分配的PGA超过pga_aggregate_target的次数.这个参数可以判断pga_aggregate_target是否设置的太小.
cache hit percentage 自从instance启动后的PGA命中率,如果所有的操作都在MEM中进行没有在TEMP里运行的话应该是100%
参考:http://realdiabloren.itpub.net/post/27072/248072
分享到:
相关推荐
在深入理解Oracle内存管理的过程中,我们可以从以下几个方面进行探讨: 1. **内部存储与外部存储**:内部存储主要指的是Oracle实例内存结构,包括SGA(System Global Area)和PGA(Program Global Area)。SGA是...
总的来说,Oracle内存管理涉及到多个层面,包括进程私有内存(PGA)和全局共享内存(SGA)的配置、使用和优化。深入理解这些概念并掌握相应的监控和调整技巧,是确保Oracle数据库高效稳定运行的基础。通过持续的学习...
ORACLE 自动内存管理和存储调整 ORACLE 自动内存管理和存储调整是 ORACLE 数据库中的一种重要配置,它可以根据系统的实际情况自动调整内存和存储的使用,以提高数据库的性能和效率。本文将详细介绍 ORACLE 自动内存...
Oracle内存管理是数据库系统中的关键组成部分,它直接影响到数据库的性能和稳定性。Oracle数据库使用复杂的内存结构来存储和处理数据,这些内存结构包括共享池、数据缓冲区缓存、PGA(程序全局区)和SGA(系统全局区...
冯春培作为一位经验丰富的Oracle专家,他的这篇文章清晰而深入地介绍了Oracle内存管理的关键方面,特别是系统全局区(SGA)和进程全局区(PGA)的配置与优化。 #### 二、Oracle内存架构概览 ##### 2.1 SGA与PGA的区别 ...
本文将深入探讨Oracle内存结构,包括SGA(System Global Area)和PGA(Program Global Area),以及如何进行全面的内存分析。 一、Oracle内存架构 1. SGA(系统全局区) SGA是Oracle数据库运行时共享的一片内存...
本文将深入探讨Oracle内存管理的核心概念,包括内存结构、内存分配策略以及如何通过配置来提升数据库效率。 Oracle内存主要分为两大部分:系统全局区(System Global Area, SGA)和程序全局区(Program Global Area, ...
【操作系统与Oracle内存管理比较】 本文探讨了操作系统与Oracle数据库在内存管理上的异同,作者王润中通过对比分析,揭示了两者在内存利用和进程管理上的策略。 1. 操作系统的内存管理 操作系统的内存管理主要...
"Oracle内存资源分配"是数据库管理员必须掌握的关键技能,它涉及到Oracle数据库系统的Shared Global Area (SGA) 和Program Global Area (PGA) 的配置与调整。 首先,SGA是Oracle数据库运行时共享内存的主要区域,它...
Oracle内存结构是数据库性能优化的关键因素,它主要分为两大部分:共享内存(SGA)和进程私有内存(PGA及UGA)。理解这些组件的工作原理对于优化Oracle数据库的性能至关重要。 1. SGA(System Global Area) SGA是...
理解Oracle内存管理不仅有助于提高数据库的运行效率,还能确保系统的稳定性和可靠性。通过对SGA和PGA的深入学习,DBA可以更好地诊断和解决性能问题,从而提升整体的业务运行速度。因此,这份"Oracle 内存全面分析"的...
本文将深入探讨Oracle实例的内存管理机制,重点讲解系统全局区(SGA)与程序全局区(PGA)的组成部分及其调整方法,以实现数据库性能的最大化。 #### 一、Oracle实例内存架构概览 Oracle实例的内存结构主要分为两...
1. 使用自动内存管理:Oracle 10g及以后版本引入了自动内存管理,DBA可以设置一个总的内存预算,让Oracle自动分配SGA和PGA。 2. 分析工作负载:通过监控工具如AWR(Automatic Workload Repository)和ASH(Active ...
Oracle数据库的内存结构主要包括三个关键部分:System Global Area (SGA), Program Global Area (PGA), 和 User Global Area (UGA)。这些区域都是用于存储和处理数据库操作的数据和信息。 1. **System Global Area ...
1. **自动PGA管理**:自Oracle 10g开始,引入了自动PGA内存管理功能,允许数据库自动调整PGA大小,以适应工作负载的变化,减少了手动调优的需求。 2. **PGA参数配置**:`pga_aggregate_target`是用于设置PGA总目标...
公司出资,请专业培训公司培训oracle调优
### Oracle内存管理详解 在Oracle数据库管理中,内存管理是一项至关重要的任务,它直接影响到数据库的性能和稳定性。本文将围绕“Oracle内存管理”这一核心主题进行深入探讨,旨在帮助读者理解Oracle内存管理的基本...