ORACLE 内存管理 PGA v$pgastat

  • PGA 自动管理

需要设置两个基本点参数 :

WORKAREA_SIZE_POLICY=AUTO,默认就是AUTO,

PGA_AGGREGATE_TARGET总的PGA的大小

注意,9I的shared server连接需要明确设置SORT_AREA_SIZE 和 HASH_AREA_SIZE,也就是说不能用自动管理模式。10G则无此限制。

PGA_AGGREGATE_TARGET是一个上限(理论上的最大值,PL/SQL就很容易超过),ORACLE启动时并不分配那么多,你甚至可以设置大于物理MEM的大小(生产库不要这么做呀,要设置pga_aggregate_target+sga,别挑战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

  • v$pgastat

SQL> show parameter pga

NAME TYPE VALUE

------------------------------------ ---------------------- ------------------------------

pga_aggregate_target big integer 105906176

SQL> show parameter workarea

NAME TYPE VALUE

------------------------------------ ---------------------- ----------

workarea_size_policy string AUTO

1 select name||' '||

2 to_char(decode( unit,

3 'bytes', value/1024/1024,

4 value ),'999,999,999.9')||' '||

5 decode( unit, 'bytes', 'mbytes', unit )

6* from v$pgastat

SQL> /

NAME||''||TO_CHAR(DECODE(UNIT,'BYTES',VALUE/1024/1024,VALUE),'999,999,999.9')||''||DECODE(UNIT,'BYTE

----------------------------------------------------------------------------------------------------

aggregate PGA target parameter 101.0 mbytes

aggregate PGA auto target 74.1 mbytes

global memory bound 5.0 mbytes

total PGA inuse 22.0 mbytes

total PGA allocated 33.2 mbytes

maximum PGA allocated 33.4 mbytes

total freeable PGA memory .0 mbytes

PGA memory freed back to OS .0 mbytes

total PGA used for auto workareas 3.3 mbytes

maximum PGA used for auto workareas 4.8 mbytes

total PGA used for manual workareas .0 mbytes

maximum PGA used for manual workareas 3.6 mbytes

over allocation count .0

bytes processed 1,545.8 mbytes

extra bytes read/written 75.1 mbytes

cache hit percentage 95.4 percent

解释

aggregate PGA auto target 74.1 mbytes,可以使用的PGA,也就是说剩余的PGA

total PGA inuse 22.0 mbytes 现在使用的PGA

over allocation count .0 ORACLE分配的PGA超过pga_aggregate_target 的次数.这个参数可以判断pga_aggregate_target 是否设置的太小.

cache hit percentage 95.4 percent 自从instance启动后的PGA 命中率,如果所有的操作都在MEM中进行没有在TEMP里运行的话应该是100%.

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/633084/viewspace-888420/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/633084/viewspace-888420/

ORACLE 内存管理 之二 PGA v$pgastat相关推荐

  1. Oracle内存管理(修改SGA与PGA)

    目录: Oracle11g数据库内存管理 一.Oracle数据库内存管理概念: 二.内存管理方式的切换: 三.修改实例SGA与PGA大小(ASMM) 1.使用sqlplus命令在数据库中修改 (1). ...

  2. oracle内存管理模式amm,【读书笔记】ORACLE 内存管理

    <Administrator's Guide>第6章介绍了ORACLE实例的内存管理,在11g中,ORACLE默认使用自动内存管理(AMM)来管理SGA和PGA的大小.除了默认的方法之外, ...

  3. Oracle内存结构:SGA PGA UGA

    oracle内存结构: SGA.PGA.UGA 内存结构是oracle数据库最重要的组成部分之一,在数据库中的操作或多或少都会依赖到内存,是影响数据库性能的重要因素Oracle数据库中包括3个基本的内 ...

  4. C语言内存管理内幕(二)----半自动内存管理策略

    2019独角兽企业重金招聘Python工程师标准>>> C语言内存管理内幕(二)----半自动内存管理策略 转载于:https://my.oschina.net/hengcai001 ...

  5. 内存管理(二) ARC

    内存管理(二) ARC 上篇我们介绍了MRC,本篇我们介绍下ARC ARC概述 ARC是一种编译器功能,它通过LLVM编译器和Runtime协作来进行自动管理内存.LLVM编译器会在编译时在合适的地方 ...

  6. Linux内存管理(二)

    Linux内存管理之二:Linux在X86上的虚拟内存管理 本文档来自网络,并稍有改动. 前言 Linux支持很多硬件运行平台,常用的有:Intel X86,Alpha,Sparc等.对于不能够通用的 ...

  7. 同样学习Linux, 为何差别这么大? - 论打通Linux进程和内存管理任督二脉

    穆赫兰道和内陆帝国 我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU.内存资源等的真正分布,具体 ...

  8. Oracle内存管理PGA详解

    当用户进程连接到数据库并创建一个对应的会话时,Oracle服务进程会为这个用户专门设置一个PGA区,用来存储这个用户会话的相关内容.当这个用户会话终止时,系统会自动释放这个PGA区所占用的内存.这个P ...

  9. Oracle 自己主动内存管理 SGA、PGA 具体解释

    ASMM自己主动共享内存管理: 自己主动依据工作量变化调整 最大程度地提高内存利用率 有助于消除内存不足的错误 SYS@PROD>show parameter sga NAME          ...

最新文章

  1. 维护MMO项目的随想
  2. Interpreter - 解释器模式
  3. 德尔塔克戎,新冠“双毒合一”变体首次证实
  4. 优化器 Adam和SGD的结合体AdaBelief
  5. 无重复字符的最长子串【哈希算法】-O(n)
  6. LRU缓存机制—leetcode146
  7. 如何在SAP Spartacus里捕捉感兴趣的事件
  8. 仓储系统java_Java的最全最细的学习路线图,助你早日斩获心仪的Offer
  9. 洛谷 P1948 [USACO08JAN]电话线Telephone Lines
  10. div水平垂直居中的几种方法(面试问题)
  11. pyqt5 登录窗口调用主窗口
  12. datax参数设置_DataX-操作HDFS
  13. 巧用JSON.stringify()生成漂亮格式的JSON字符串
  14. 编程入门知识c语言,C语言编程学习入门基础知识有哪些?
  15. 7 21 第一次团队赛——————写给队友
  16. Android 实现图文混排
  17. Element UI 自定义动态换肤(主题)
  18. 使用博图V15和KEPServerEX6软件进行OPC Server读取PLC数据仿真(对PLC数据采集和边缘计算程序测试的准备)
  19. 基尔霍夫电压定律解析
  20. 支持高性能计算场景,博云容器云打造智能算力引擎

热门文章

  1. 在虚幻引擎5中构建你的首款游戏 - 07 - 角色模型和动画
  2. YOLOV5训练自己目标检测模型和cpu检测
  3. struts2之action生命周期和ActionSupport
  4. ​新加坡国立大学癌症研究所,陈蕾蕾课题组招收生物信息学博士后
  5. Android学习|布局——GridLayout 表格布局_(可行、列合并)
  6. 嵌入式移植使用pppoe
  7. 数据库 表设计 MySQL
  8. 【论文笔记】Anchor-free目标检测论文推荐
  9. 蓝鲸社区版(腾讯)部署简述
  10. 如何拍摄高质量数码照片