Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1997701
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:10:33

    关于参数调整,是oracle的复杂性的一个具体体现。通常来讲,我们更倾向于让客户做statspack报告,然后告诉我们os监控的状况,在这些的信息的基础上,再向客户索取具体的详细信息以诊断问题的所在。系统的调整,现在我们通常采用从等待事件入手的方法。因为一个系统感觉到慢,必然是在某个环节上出现等待,那么我们从等待最多的事件入手逐步诊断并解决问题。

    对于内存的调整,相对来说简单一些,我们首先可以针对数据缓冲区的大小来看。首先观察命中率

    数据缓冲区命中率

SQL> select value from  v$sysstat where name ='physical reads';

     VALUE

----------

     14764

SQL>  select value from  v$sysstat where name ='physical reads direct';

     VALUE

----------

        50

SQL> select value from  v$sysstat where name ='physical reads direct (lob)';

     VALUE

----------

         0

SQL> select value from  v$sysstat where name ='consistent gets';

     VALUE

----------

167763

SQL> select value from v$sysstat where name = 'db block gets';

     VALUE

----------

     14305

    这里命中率的计算应该是

    令 x = physical reads direct + physical reads direct (lob)

    命中率 =100 - ( physical reads - x) / (consistent gets + db block gets - x)*100

    通常如果发现命中率低于90%,则应该调整应用可可以考虑是否增大数据缓冲区

    共享池的命中率

    SQL> select sum(pinhits)/sum(pins)*100 "hit radio" from v$librarycache;

 hit radio
 
----------

 99.809291

    假如共享池的命中率低于95%,就要考虑调整应用(通常是没使用bind var )或者增加内存

    关于排序部分

    SQL>  select name,value from v$sysstat where name like '%sort%';

NAME                                                                  VALUE

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

sorts (memory)                                                        67935

sorts (disk)                                                              1

sorts (rows)                                                           7070

SQL>

    假如我们发现sorts (disk)/ (sorts (memory)+ sorts (disk))的比例过高,则通常意味着sort_area_size部分内存较小,可考虑调整相应的参数。

    关于log_buffer

    SQL>  select name,value from v$sysstat

    2    where name in('redo entries','redo buffer allocation retries');

NAME                                                                  VALUE

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

redo entries                                                        2325719

redo buffer allocation retries                                           10

    假如 redo buffer allocation retries/ redo entries 的比例超过1%我们就可以考虑增大log_buffer

    通常来说,内存的调整的焦点就集中在这几个方面,更多更详细的内容,建议从statspack入手来一步一步调整。最后关于内存的调整,再强调这一点,一定要结合操作系统来衡量,任何理论都必须要实践来检验。在操作系统中观察 page  in/out 状况,发现问题严重,应该考虑调小SGA。

【责编:Amy】

--------------------next---------------------

阅读(167) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~