您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页[RAC性能调优]gcbufferbusyacquire处理

[RAC性能调优]gcbufferbusyacquire处理

来源:爱go旅游网

RAC性能调优] gc buffer busy acquire 处理 分类: troubleshooting RAC 2014-04-21 20:02 255人阅读 评论(0) 收藏 编辑删除 目录(?)[+] RAC性能调优 gc buffer busy acquire 处理 [RAC性能调优] gc buffer busy acquire event 解释: gc buffer busy acquir

 RAC性能调优] gc buffer busy acquire 处理 分类: troubleshooting RAC 2014-04-21 20:02 255人阅读 评论(0) 收藏 编辑删除

目录(?)[+]

  1. RAC性能调优 gc buffer busy acquire 处理 

    [RAC性能调优] gc buffer busy acquire \

    event 解释:

    gc buffer busy acquire是当session#1尝试请求访问远程实例(remote instance) buffer,但是在session#1之前已经有相同实例上另外一个session#2请求访问了相同的buffer,并且没有完成,那么session#1等待gc buffer busy acquire。

    原因/解决方法
    ---------------------
    - 1.》热点块(hot block)
    在AWR中Segments by Global Cache Buffer Busy记录了访问频繁的gc buffer.
    解决方法可以根据热点块的类型采取不同的解决方法,比如采取分区表,分区索引,反向index等等。这点与单机数据库中的buffer busywaits类似。

    Segments by GlobalCache Buffer Busy

  2. % of Capture shows % of GC Buffer Busy for each top segment compared
  3. with GC Buffer Busy for all segments captured by the Snapshot

    Owner

    Tablespace Name

    Object Name

    Subobject Name

    Obj. Type

    GC Buffer Busy

    % of Capture

    WMCADMIN

    BILLDATA0

    FEEORDER_LOG_1404

    TABLE

    79,555,421

    78.41

    WMCADMIN

    BILLINDEX0

    FEEORDER_LOG_1404_RSPCODETIME

    INDEX

    21,779,575

    21.47

    WMCADMIN

    BILLINDEX0

    IDX_BILLRING_INFO_1404_1

    INDEX

    125,829

    0.12

    SYS

    SYSTEM

    UET$

    TABLE

    182

    0.00

    SYS

    SYSTEM

    I_FILE#_BLOCK#

    INDEX

    62

    0.00

    - 2》低效SQL语句
    低效SQL语句会导致不必要的buffer被请求访问,增加了buffer busy的机会。在AWR中可以找到TOP SQL。解决方法可以优化SQL语句减少buffer访问。这点与单机数据库中的buffer busy waits类似。

    Buffer Gets

    Executions

    Gets per Exec

    %Total

    Elapsed Time (s)

    %CPU

    %IO

    SQL Id

    SQL Module

    SQL Text

    539,775,845

    8

    67,471,980.63

    44.45

    80,098.98

    16.9

    17.4

    0mtunwsd5p9z1

    SQL*Plus

    SELECT 'Result ' || ( SELECT C...

    520,003,254

    7

    74,286,179.14

    42.82

    72,983.93

    19

    19

    bx100749tk78y

    SQL*Plus

    select 'Result ' || successall...

    相应的sql 为:

    SELECT 'Result ' || ( SELECT COUNT(1) FROM feeorder_log_1404 WHERE requestdata >SYSDATE - 5 / 1440 AND requestdata <= SYSDATE AND rspcode='000000' ANDSUBSTR(copyrightid, -1, 1)='1' ) || ' ' || ( SELECT COUNT(1) FROM feeorder_log_1404 WHERErequestdata > SYSDATE - 5 / 1440 AND requestdata <= SYSDATE ANDSUBSTR(copyrightid, -1, 1)='1' ) FROM dual

    select 'Result ' || successall ||' '|| requestall from (selectcount(1) as requestall from feeorder_log_1404where REQUESTDATA>sysdate-5/1440 and REQUESTDATA<=sysdate), (selectcount(1) as successall from feeorder_log_1404where REQUESTDATA>sysdate-5/1440 and REQUESTDATA <=sysdate and RspCode ='000000')

    --3》。数据交叉访问。
    RAC数据库,同一数据在不同数据库实例上被请求访问。
    如果应用程序可以实现,那么我们建议不同的应用功能/模块数据分布在不同的数据库实例上被访问,避免同一数据被多个实例交叉访问,可以减少buffer的争用,避免gc等待。

    --4》- 可能为Oracle bug
    建议安装Oracle推荐的最新Patch Set和PSU。
    Patch set和PSU信息请参考:Oracle Recommended Patches -- Oracle Database (Doc ID 756671.1)

    如果问题还在的话,可以做一下一下操作:

    RAC数据库收集hanganalyze的命令:
    SQL> conn / as sysdba
    SQL> oradebug setmypid
    SQL> oradebug unlimit
    SQL> oradebug -g all hanganalyze 3

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务