`

Oracle PGA概念及调整

阅读更多

--预备知识

PGA(Process Global Area),是server process一段私有内存区,它包含有全局变量,数据结构和一些控制信息。在Oracle8i 中,PGA调整非常复杂,要调整SORT_AREA_SIZE、HASH_AREA_SIZE、BITMAP_MERGE_AREA_SIZE、 CREATE_BITMAP_AREA_SIZE等参数。在ORACLE9I中,只需要调整 PGA_AGGREGATE_TARGET。

--PGA_AGGREGATE_TARGET初始化设置 

PGA_AGGREGATE_TARGET的值应该基于Oracle实例可利用内存的总量来设置,这个参数可以被动态的修改。假设Oracle实例可分配4GB的物理内存,剩下的内存分配给操作系统和其它应用程序。你也许会分配80%的可用内存给Oracle实例,即3.2G。现在必须在内存中划分SGA和PGA区域。 

在OLTP系统中,典型PGA内存设置应该是总内存的较小部分(例如20%),剩下80%分配给SGA。 
OLTP:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 20% 

在DSS系统中,由于会运行一些很大的查询,典型的PGA内存最多分配70%的内存。
DSS:PGA_AGGREGATE_TARGET = (total_mem * 80%) * 50% 

在这个例子中,总内存4GB,DSS系统,你可以设置PGA_AGGREGATE_TARGET为1600MB,OLTP则为655MB。 

--配置PGA自动管理 

不用重启DB,直接在线修改。

SQL> alter system set workarea_size_policy=auto scope=both;

System altered.

SQL> alter system set pga_aggregate_target=512m scope=both;

System altered.

SQL> show parameter workarea

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy                 string      AUTO --这个设置成AUTO
SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 536870912

SQL> 

--监控自动PGA内存管理的性能 

V$PGASTAT:这个视图给出了一个实例级别的PGA内存使用和自动分配的统计。 

SQL> set lines 256
SQL> set pages 42
SQL> SELECT * FROM V$PGASTAT; 

NAME                                                                  VALUE UNIT
---------------------------------------------------------------- ---------- ------------
aggregate PGA target parameter                                    536870912 bytes    --当前PGA_AGGREGATE_TARGET的值 
aggregate PGA auto target                                         477379584 bytes    --当前可用于自动分配了的PGA大小,不应该比PGA_AGGREGATE_TARGET 小 
global memory bound                                                26843136 bytes    --自动模式下工作区域的最大大小,Oracle根据工作负载自动调整。 
total PGA inuse                                                     6448128 bytes
total PGA allocated                                                11598848 bytes    --PGA的最大分配 
maximum PGA allocated                                             166175744 bytes
total freeable PGA memory                                            393216 bytes    --PGA的最大空闲大小 
PGA memory freed back to OS                                        69074944 bytes
total PGA used for auto workareas                                         0 bytes    --PGA分配给auto workareas的大小 
maximum PGA used for auto workareas                                 1049600 bytes
total PGA used for manual workareas                                       0 bytes
maximum PGA used for manual workareas                                530432 bytes
over allocation count                                                  1118    --实例启动后,发生的分配次数,如果这个值大于0,就要考虑增加pga的值 
bytes processed                                                   114895872 bytes
extra bytes read/written                                            4608000 bytes
cache hit percentage                                                  96.14 percent    --命中率 

16 rows selected.

--V$PGA_TARGET_ADVICE 

SQL> SELECT round(PGA_TARGET_FOR_ESTIMATE/1024/1024) target_mb, 
   ESTD_PGA_CACHE_HIT_PERCENTAGE cache_hit_perc, 
   ESTD_OVERALLOC_COUNT
   FROM v$pga_target_advice;

The output of this query might look like the following:

TARGET_MB   CACHE_HIT_PERC ESTD_OVERALLOC_COUNT
---------- -------------- --------------------
63       23          367
125        24          30
250        30          3
375        39          0
500        58          0
600        59          0
700        59          0
800        60          0
900        60          0
1000    61          0
1500    67          0
2000    76          0
3000    83          0
4000    85          0

可以看出当TARGET_MB 为375M是ESTD_OVERALLOC_COUNT=0,所以我们可以将PGA_AGGREGATE_TARGET设置成375M

分享到:
评论

相关推荐

    oracle中的SGA和PGA

    Oracle数据库系统是企业级数据管理的重要工具,其中的SGA(System Global Area)和PGA(Program Global Area)是两个核心概念,对于理解Oracle数据库的工作原理至关重要。本文将深入探讨这两个概念,以及它们在...

    Oracle内存分配与调整--大牛冯春培的一篇文章

    ### Oracle内存分配与调整——详解冯春培的文章 ...冯春培的文章为我们提供了一个很好的起点,帮助我们掌握Oracle内存管理的核心概念和技术细节。无论是初学者还是经验丰富的DBA,都能从中受益匪浅。

    Oracle高性能SQL调整.rar

    9. **内存管理与缓存**:了解Oracle的SGA(System Global Area)和PGA(Program Global Area)内存结构,以及如何调整这些内存组件的大小以优化性能。 10. **性能监控与诊断工具**:熟悉AWR(Automatic Workload ...

    高级owi与oracle性能调整.pdf

    通过对高级owi技术和Oracle性能调整的深入探讨,我们不仅了解了这些技术的基本概念和特点,还掌握了实现高效稳定Oracle数据库系统的具体方法。无论是对于希望提升Oracle应用性能的专业人士,还是想要深入了解高级owi...

    Oracle STATSPACK高性能调整技术

    它由Oracle在9i版本中引入,后来在10g及更高版本中被Automatic Workload Repository (AWR)所取代,但即便如此,STATSPACK仍然在许多环境中作为性能监控的重要手段。以下是对Oracle STATSPACK及其在高性能调整中的...

    Oracle Concepts Oracle概念(10g R2)(中英文对照文档)

    这份文档是学习和理解Oracle数据库架构、操作及管理的关键资源,尤其对于DBA(数据库管理员)和开发人员而言。以下是其中的主要知识点: 1. **数据库基础**:Oracle数据库的基础架构,包括数据存储、数据库实例、...

    Oracle内存分配与调整.rar

    - **自动内存管理**:Oracle 10g及以后版本引入了自动内存管理功能,可以根据设置的内存总预算自动调整SGA和PGA,但仍然需要定期检查和调整以保持最佳性能。 本教程“Oracle内存分配与调整.pdf”将详细阐述这些概念...

    Oracle 10g 内存 调整报告

    本文将基于提供的内容,详细介绍Oracle 10g内存调整的关键概念、重要参数及其调整方法。 #### SGA与PGA **SGA (Shared Global Area)** 和 **PGA (Program Global Area)** 是Oracle 10g实例的核心内存区域。它们...

    OCP Oracle9i 性能调整学习指南.pdf

    - **考试大纲解析**: 详细介绍 OCP Oracle9i 性能调整考试的各个部分及重点考查内容。 - **模拟试题**: 提供一系列模拟试题以帮助考生熟悉考试形式和题型,检验自己的学习成果。 - **备考策略建议**: 分享有效的复习...

    Oracle 10g的内存调整报告

    SGA是Oracle实例的一个核心概念,它包含了多个内存区域,这些区域被所有服务器进程所共享。主要包括以下几个部分: - **Shared Pool**:存储了数据库的数据字典缓存、Library Cache等重要信息。Library Cache中保存...

    ORACLE系统调整以及优化设计

    第19章关于调整内存分配,这部分内容会深入解析Oracle的System Global Area (SGA)和Program Global Area (PGA)。SGA包含数据缓冲区、重做日志缓冲区、共享SQL区等关键组件,而PGA则用于存储每个用户会话的数据。理解...

    Oracle的概念和术语,基本知识,物理数据库结构,逻辑结构

    2. 实例(Instance):实例是Oracle服务器运行时的内存结构,包括系统全局区(SGA)和程序全局区(PGA)等组成部分。 3. 表空间(Tablespace):存储数据库对象(如表、索引)的空间,由一个或多个数据文件组成。 4....

    Oracle高性能SQL调整

    4. **数据库参数调优**:Oracle有许多可调整的系统参数,如SGA(System Global Area)、PGA(Program Global Area)的大小,以及各种与并发、缓冲、排序相关的参数。调整这些参数可以平衡系统资源的使用,提高处理...

    oracle及sql性能调整的总结

    以下是对“Oracle及SQL性能调整”的详细总结: 1. **Oracle性能基础** - **数据库架构**:Oracle数据库由多个组件构成,包括数据文件、控制文件、重做日志文件、参数文件等。理解这些组件的作用有助于识别性能瓶颈...

    高级owi与oracle性能调整

    根据给定的信息,“高级owi与oracle性能调整”这本书聚焦于Oracle数据库性能优化及owi(Online Workload Identification,即在线工作负载识别)相关的技术探讨。由于提供的具体内容中并未包含实际的技术内容,以下的...

    oracle10g概念

    ### Oracle10g概念知识点概览 #### 第1章:Oracle数据库简介 ##### 1.1 Oracle数据库架构 - **1.1.1 Oracle网格架构纵览**:Oracle 10g 引入了网格计算的概念,使得多个数据库能够协同工作以提供更高的可用性和可...

    《Oracle经典教程》PDF

    另外,还会涉及数据库的内存结构,如SGA(System Global Area)和PGA(Program Global Area),以及如何调整其大小以提高性能。 在高级特性方面,Oracle支持分布式数据库系统,通过数据库链接实现跨数据库的通信。...

    oracle sga 调整

    - SGA和PGA的合理调整对于优化Oracle数据库性能至关重要。 - 定期监控和分析SGA各部分的使用率可以帮助我们更好地理解系统的工作负载,并据此做出调整决策。 - 在实际操作中,需要综合考虑系统的实际需求、硬件配置...

    Oracle内存管理(深入解析)

    Oracle数据库的内存管理是...深入理解这些概念并掌握相应的监控和调整技巧,是确保Oracle数据库高效稳定运行的基础。通过持续的学习和实践,DBA可以更好地管理和优化Oracle数据库的内存资源,从而提升系统的整体性能。

Global site tag (gtag.js) - Google Analytics