对于PGA的监控与调整,可以通过下列视图作为参考

v$pgastat

v$pga_target_advice

v$pga_target_advice_histogram

1、查看v$pgastat视图获得PGA的相关信息

SQL> select * from v$pgastat;

NAME                                          VALUE UNIT

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

aggregate PGA target parameter            199229440 bytes   --当前PGA_AGGREGATE_TARGET设定的值

aggregate PGA auto target                 127153152 bytes   --剩余的能被工作区(workarea)使用的内存(AUTO模式)

global memory bound                        39845888 bytes   --单条SQL串行操作的最高PGA内存使用量(AUTO模式)

total PGA inuse                            62769152 bytes   --正被耗用的pga(包括workarea pl/sql等所有占用的pga)

total PGA allocated                       132114432 bytes   --当前实例已分配的PGA内存总量

maximum PGA allocated                     299982848 bytes   --PGA曾经扩张到的最大值

total freeable PGA memory                  10223616 bytes   --PGA的可释放的大小

process count                                    19         --当前process

max processes count                              42         --最大时候的process

PGA memory freed back to OS             46708359168 bytes   --PGA返回给操作系统的累计值

total PGA used for auto workareas           4829184 bytes   --PGA分配给auto workareas的总大小

maximum PGA used for auto workareas        39851008 bytes   --PGA分配给auto workareas峰值

total PGA used for manual workareas               0 bytes

maximum PGA used for manual workareas        531456 bytes

over allocation count                             1         --使用量超过pga大小的次数

bytes processed                         96178293760 bytes   --pga使用的字节

extra bytes read/written                 1855111168 bytes   --向临时段写的字节

cache hit percentage                             98 percent --命中率

recompute count (total)                     1473108

-->从上面的统计信息可以看出maximum PGA allocated的值远大于aggregate PGA target parameter的值,且over allocation count,

-->此时应考虑增加PGA target的值

2、v$pga_target_advice_histogram视图

该视图可以显示各种不同排序工作区的使用情况,

OPTIMAL_EXECUTIONS是不需要通过临时表空间交换的操作的次数。

ONEPASS_EXECUTIONS是需要进行一次临时表空间交换的操作次数。

MULTIPASSES_EXECUTIONS是需要多次临时表空间交换的操作次数。

原则上,如果100%的操作都是内存操作,是最佳的选择。如果内存不足,某些大型操作是ONEPASS的,也是可以接受的。

出现MULTIPASSES的操作会引起性能的急剧下降,此时应考虑调整PGA target

/**************************************************/

/* Author: Robinson Cheng                         */

/* Blog:   http://blog.csdn.net/robinson_0612     */

/* MSN:    robinson_0612@hotmail.com              */

/* QQ:     645746311                              */

/**************************************************/

SQL> SELECT LOW_OPTIMAL_SIZE/1024 low_kb,(HIGH_OPTIMAL_SIZE+1)/1024 high_kb,

2         optimal_executions opt_exec, onepass_executions onepass_exec, multipasses_executions multipass_exec

3  FROM   v$sql_workarea_histogram

4  WHERE  total_executions != 0;

LOW_KB    HIGH_KB   OPT_EXEC ONEPASS_EXEC MULTIPASS_EXEC

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

2          4    1013515            0              0

64        128       7041            0              0

128        256       1499            0              0

256        512       1222            0              0

512       1024      67917            0              0

1024       2048      19057            0              0

2048       4096       3450            0              0

4096       8192        770            4              0

8192      16384         37            0              0

32768      65536          2            7              0

131072     262144          0           24              0

LOW_KB    HIGH_KB   OPT_EXEC ONEPASS_EXEC MULTIPASS_EXEC

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

262144     524288          0            4              0

3、从v$pga_target_advice获取pga设置的建议值

SQL> select pga_target_for_estimate / 1024 / 1024 pgamb,

2        pga_target_factor p_tr_fct,

3        estd_pga_cache_hit_percentage e_p_c_hit_prct,

4        estd_overalloc_count e_or_cnt

5  from   v$pga_target_advice;

PGAMB   P_TR_FCT E_P_C_HIT_PRCT   E_OR_CNT

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

23.75       .125             82       1179

47.5        .25             82       1179

95         .5             95        233

142.5        .75             99          6

190          1             99          1

228        1.2             99          0

266        1.4             99          0

304        1.6             99          0

342        1.8             99          0

380          2             99          0

570          3             99          0

760          4             99          0

1140          6             99          0

1520          8             99          0

--从上面的查询中可以看出当设置PGA的大小为228MB时,可以消除PGA过载的情形。

"font-family:SimSun;">4、通过V$SYSSTAT查看排序区的情况

-->下面查看当前系统中optimal,onepass,multipass几种不同排序下所占的比率

-->关于排序应当尽可能的为optimal,避免过多的multipass

SQL> col profile format a40

SQL> SELECT name profile, cnt, decode(total, 0, 0, round(cnt*100/total,4)) percentage

2  FROM (SELECT name, value cnt, (sum(value) over ()) total FROM V$SYSSTAT WHERE name like 'workarea exec%');

PROFILE                                         CNT PERCENTAGE

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

workarea executions - optimal               1113054     99.999

workarea executions - onepass                    11       .001

workarea executions - multipass                   0          0

-->下面查看内存排序占总排序的比率,此值越高越好.如此值较小,应结合v$pga_target_advice考虑调整pga

SQL> SELECT round(m.value / (m.value + d.value), 4) * 100 || '%' memory_disk_sort_ratio

2  FROM   (SELECT value FROM v$sysstat WHERE NAME = 'sorts (memory)') m,

3        (SELECT value FROM v$sysstat WHERE NAME = 'sorts (disk)') d;

MEMORY_DISK_SORT_RATIO

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

100%

mysql pga_PGA的监控与调整相关推荐

  1. mysql mpm_zabbix mpm 监控 mysql性能

    一.环境说明 zabbix 2.2 in Centos 6.4 64bit 二.MPM(MySQL Performance Monitor)安装 1.依赖模块 yum install perl-Fil ...

  2. mysql主从同步监控小脚本(加强版)

    mysql主从同步监控小脚本(加强版): 新版本脚本增加了"当发现同步出现无法同步的时候"会自动提取主库的file号,以及pos,进行同步主库,脚本内容如下: #!/bin/sh ...

  3. 更新MySQL复制 自动监控脚本

    具体代码请见: MySQL复制 自动监控脚本 增加了判断slave落后于master多少秒的机制. 本文出自 "MySQL中文网"博客 http://www.imysql.cn/ ...

  4. linux 监控mysql脚本_Linux系统MySQL主从同步监控shell脚本

    操作系统:CentOS系统 目的:定时监控MySQL数据库主从是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态 1.创建脚本文件 vi /home/crontab/check_mysq ...

  5. nagios监控mysql服务_nagios监控mysql及邮件报警

    1.使用默认监控命令check_http命令+相关的参数来实现,如下: 在command.cfg添加如下关键词监控命令:check_http_word,参数解析:-I指定IP或者主机名,-u指定URL ...

  6. zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程

    zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程 --前言 上次用了zabbix自带的mysql插件来监控mysql数据库,但是太过简陋了,对于我们dba ...

  7. 借助zabbix和mysql performance monitor模板实现mysql数据库的监控

    1.安装mpm需要的相关依赖包:[保险起见,agent端也安装下面的依赖包] [root@client141 ~]# yum -y install perl-File-Which perl-libww ...

  8. 【2】【MySQL】常用监控指标及监控方法(转)

    [MySQL]常用监控指标及监控方法 转自:https://www.cnblogs.com/wwcom123/p/10759494.html  对之前生产中使用过的MySQL数据库监控指标做个小结. ...

  9. MySQL慢日志监控脚本

    #!/bin/bash # 本脚本用来在指定频率内监控 MySQL 慢日志的变化,并在发生增长时及时报警 MON_FILE="$2"   # 指定所要监控的脚本路径 SEC=60 ...

最新文章

  1. 第十六届智能车竞赛参赛队员提问与回答 |2021年7月12
  2. 写文章 使用conda管理python环境
  3. python——迭代器
  4. .NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书
  5. Oracle变量的定义、赋值及使用
  6. 阿里云运行python项目_荐个人博客开发-06:Nginx + uWSGI + Django项目部署到阿里云服务器运行...
  7. php echo substr('hello',1,-2);-2是什么意思 为什么结果是 el
  8. java中的POJO类
  9. 布线工程-认识光纤和光缆
  10. 测试用例目的和测试用例方法
  11. BLE 技术(四)--- 链路层五种通信模式和空口协议设计 (Core_v5.2)
  12. 计算机原理探究第一部分教案,高中信息技术《计算机结构原理初步》教案
  13. 自动识图进行点击,用Python玩连连看是什么效果?
  14. 2022国产车排行榜前十名
  15. VB.net学习笔记(六)VB.net的对象
  16. 全景管家解析高清全景图,支持720yun、AirPano、酷家乐
  17. 论文笔记_S2D.77_2013_TOR_使用RGBD相机的3D建图(RGBD SLAM V2)
  18. 完全背包问题(二维数组)
  19. ACCA如何选择教材,备考方便有效
  20. 微信悬浮窗图标显示如何配置

热门文章

  1. php fileinfo 作用,PHP Fileinfo函数 详解
  2. 操作系统 | Mac如何更新word中的域
  3. matlab中模糊工具箱的使用
  4. android的一些简单配置修改(2)
  5. python英文单词
  6. 毕业设计论文的写作指南
  7. javax,java
  8. 计算机组成原理位移量,计算机组成原理大题解析.doc
  9. 越多的人入局棋牌游戏开发行业,游戏产品突出竞技元素
  10. KindEditor图片上传路径URL的处理