eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« ORA-00600 kclchkblk_4 错误恢复案例一则 | Blog首页 | ORA-600 2252 错误与SCN的一致性 »

性能优化-Oracle RAC中的Sequence Cache问题

在RAC环境中,序列的Cache问题可能会对性能有着决定性的影响,缺省的序列Cache值为20,这对RAC环境远远不够。
如果存在序列号使用的竞争,就可能在数据库中看到明显的队列等待:
enq: SQ - contention

在RAC情况下,可以将使用频繁的序列Cache值增加到10000,或者更高到50000,这些值在客户的环境中都有采用。
这是RAC设置和RAC使用的基本常识,不可或忘。

在以下测试中,可以显示Cache序列对于性能的影响:
http://space.itpub.net/14941137/viewspace-629941

摘要如下:
RAC两个会话分别处于不同node同时并发循环间断去取4万个值  :            
nocache:               2100s
cache =1000:         55s
差别却是好大。

单Instance数据库单会话循环不间断去1-4万个值  测试(在家里笔记本上测试结果)过程如下:
nocache:             37.7s          10000   
cache :20            4.31s          10000
cache :100         2.92s           10000
cache :1000       5.56s          40000
nocache:             97.7s         40000
基本上cache 大于20的时候性能基本可以接受,最好设置100以上,
nocache的时候性能确实很差,最大相差20倍.

排 序参数:oracle默认是NOORDER,如果设置为ORDER;在单实例环境没有影响,在RAC环境此时,多实例实际缓存相同的序列,此时在多个实例 并发取该序列的时候,会有短暂的资源竞争来在多实例之间进行同步。因次性能相比noorder要差,所以RAC环境非必须的情况下不要使用ORDER,尤 其要避免NOCACHE   ORDER组合;

在某些版本中存在BUG,会导致过度的 enq : SQ 竞争。
如在Oracle Database 11g中存在 IDGEN$ 序列 cache 设置过小问题,可能导致严重竞争,建议增加该序列的Cache值设置。




历史上的今天...
    >> 2008-05-22文章:
           MSN 9.0 与 wlcomm.exe 进程
           凤凰卫视回来了

无觅

By eygle on 2012-05-22 08:10 | Comments (0) | FAQ | 3010 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com