Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276673
  • 博文数量: 58
  • 博客积分: 2317
  • 博客等级: 大尉
  • 技术积分: 1080
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-22 13:16
文章分类

全部博文(58)

文章存档

2015年(1)

2014年(3)

2013年(4)

2012年(44)

2011年(6)

分类: Oracle

2011-12-23 11:01:07

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

  2.   v$pgastat  
  3.   v$pga_target_advice  
  4.   v$pga_target_advice_histogram  
  5.    
  6.  1、查看v$pgastat视图获得PGA的相关信息  
  7.   SQL> select * from v$pgastat;  
  8.     
  9.   NAME                                          VALUE UNIT  
  10.   -------------------------------------- ------------ ------------   
  11.   aggregate PGA target parameter            199229440 bytes   --当前PGA_AGGREGATE_TARGET设定的值                                       
  12.   aggregate PGA auto target                 127153152 bytes   --剩余的能被工作区(workarea)使用的内存(AUTO模式)            
  13.   global memory bound                        39845888 bytes   --单条SQL串行操作的最高PGA内存使用量(AUTO模式)         
  14.   total PGA inuse                            62769152 bytes   --正被耗用的pga(包括workarea pl/sql等所有占用的pga)   
  15.   total PGA allocated                       132114432 bytes   --当前实例已分配的PGA内存总量              
  16.   maximum PGA allocated                     299982848 bytes   --PGA曾经扩张到的最大值   
  17.   total freeable PGA memory                  10223616 bytes   --PGA的可释放的大小        
  18.   process count                                    19         --当前process   
  19.   max processes count                              42         --最大时候的process                                 
  20.   PGA memory freed back to OS             46708359168 bytes   --PGA返回给操作系统的累计值                                    
  21.   total PGA used for auto workareas           4829184 bytes   --PGA分配给auto workareas的总大小                 
  22.   maximum PGA used for auto workareas        39851008 bytes   --PGA分配给auto workareas峰值   
  23.   total PGA used for manual workareas               0 bytes                                                             
  24.   maximum PGA used for manual workareas        531456 bytes  
  25.   over allocation count                             1         --使用量超过pga大小的次数   
  26.   bytes processed                         96178293760 bytes   --pga使用的字节   
  27.   extra bytes read/written                 1855111168 bytes   --向临时段写的字节   
  28.   cache hit percentage                             98 percent --命中率    
  29.   recompute count (total)                     1473108  
  30.   -->从上面的统计信息可以看出maximum PGA allocated的值远大于aggregate PGA target parameter的值,且over allocation count,   
  31.   -->此时应考虑增加PGA target的值

     2、v$pga_target_advice_histogram视图   

  32.    该视图可以显示各种不同排序工作区的使用情况,  
  33.    OPTIMAL_EXECUTIONS是不需要通过临时表空间交换的操作的次数。  
  34.    ONEPASS_EXECUTIONS是需要进行一次临时表空间交换的操作次数。  
  35.    MULTIPASSES_EXECUTIONS是需要多次临时表空间交换的操作次数。  
  36.    原则上,如果100%的操作都是内存操作,是最佳的选择。如果内存不足,某些大型操作是ONEPASS的,也是可以接受的。  
  37.    出现MULTIPASSES的操作会引起性能的急剧下降,此时应考虑调整PGA target  
  38.    /**************************************************/  
  39.    /* Author: Robinson Cheng                         */  
  40.    /* Blog:   http://blog.csdn.net/robinson_0612     */  
  41.    /* MSN:    robinson_0612@hotmail.com              */  
  42.    /* QQ:     645746311                              */  
  43.    /**************************************************/  
  44.  SQL> SELECT LOW_OPTIMAL_SIZE/1024 low_kb,(HIGH_OPTIMAL_SIZE+1)/1024 high_kb,                                     
  45.    2         optimal_executions opt_exec, onepass_executions onepass_exec, multipasses_executions multipass_exec  
  46.    3  FROM   v$sql_workarea_histogram                                                                             
  47.    4  WHERE  total_executions != 0;                                                                               
  48.    
  49.      LOW_KB    HIGH_KB   OPT_EXEC ONEPASS_EXEC MULTIPASS_EXEC  
  50.  ---------- ---------- ---------- ------------ --------------   
  51.           2          4    1013515            0              0  
  52.          64        128       7041            0              0  
  53.         128        256       1499            0              0  
  54.         256        512       1222            0              0  
  55.         512       1024      67917            0              0  
  56.        1024       2048      19057            0              0  
  57.        2048       4096       3450            0              0  
  58.        4096       8192        770            4              0  
  59.        8192      16384         37            0              0  
  60.       32768      65536          2            7              0  
  61.      131072     262144          0           24              0  
  62.    
  63.      LOW_KB    HIGH_KB   OPT_EXEC ONEPASS_EXEC MULTIPASS_EXEC  
  64.  ---------- ---------- ---------- ------------ --------------   
  65.      262144     524288          0            4              0  
  66.       
  67.  3、从v$pga_target_advice获取pga设置的建议值  
  68.   SQL> select pga_target_for_estimate / 1024 / 1024 pgamb,  
  69.     2        pga_target_factor p_tr_fct,  
  70.     3        estd_pga_cache_hit_percentage e_p_c_hit_prct,  
  71.     4        estd_overalloc_count e_or_cnt  
  72.     5  from   v$pga_target_advice;  
  73.     
  74.        PGAMB   P_TR_FCT E_P_C_HIT_PRCT   E_OR_CNT  
  75.   ---------- ---------- -------------- ----------   
  76.        23.75       .125             82       1179  
  77.         47.5        .25             82       1179  
  78.           95         .5             95        233  
  79.        142.5        .75             99          6  
  80.          190          1             99          1  
  81.          228        1.2             99          0  
  82.          266        1.4             99          0  
  83.          304        1.6             99          0  
  84.          342        1.8             99          0  
  85.          380          2             99          0  
  86.          570          3             99          0  
  87.          760          4             99          0  
  88.         1140          6             99          0  
  89.         1520          8             99          0  
  90.   --从上面的查询中可以看出当设置PGA的大小为228MB时,可以消除PGA过载的情形。

      
  91. "font-family:SimSun;">4、通过V$SYSSTAT查看排序区的情况  
  92.   -->下面查看当前系统中optimal,onepass,multipass几种不同排序下所占的比率   
  93.   -->关于排序应当尽可能的为optimal,避免过多的multipass   
  94.   SQL> col profile format a40  
  95.   SQL> SELECT name profile, cnt, decode(total, 0, 0, round(cnt*100/total,4)) percentage  
  96.     2  FROM (SELECT name, value cnt, (sum(value) over ()) total FROM V$SYSSTAT WHERE name like 'workarea exec%');  
  97.     
  98.   PROFILE                                         CNT PERCENTAGE  
  99.   ---------------------------------------- ---------- ----------   
  100.   workarea executions - optimal               1113054     99.999  
  101.   workarea executions - onepass                    11       .001  
  102.   workarea executions - multipass                   0          0    
  103.     
  104.   -->下面查看内存排序占总排序的比率,此值越高越好.如此值较小,应结合v$pga_target_advice考虑调整pga   
  105.   SQL> SELECT round(m.value / (m.value + d.value), 4) * 100 || '%' memory_disk_sort_ratio  
  106.     2  FROM   (SELECT value FROM v$sysstat WHERE NAME = 'sorts (memory)') m,  
  107.     3        (SELECT value FROM v$sysstat WHERE NAME = 'sorts (disk)') d;  
  108.     
  109.   MEMORY_DISK_SORT_RATIO  
  110.   -----------------------------------------   
  111.   100%  
阅读(1466) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~