12c库latch free等待事件过高--Result Cache: RC Latch

数据库环境为12.1.0.2.180417

客户反应12c pdb运行缓慢,cdb中latch free等待事件过高(在cdb中可以看到latch free,pdb中看不到)

SQL> SQL>   2    3    4    5     INST_ID EVENT                              STATE                 COUNT(1)
---------- ---------------------------------------- ------------------- ----------
         1 latch free                               WAITING                    274
         1 cursor: pin S wait on X                  WAITING                     34
         1 enq: TX - row lock contention            WAITING                     20
         1 library cache lock                       WAITING                      8
         1 latch free                               WAITED KNOWN TIME            2
         1 latch free                               WAITED SHORT TIME            2
         1 SQL*Net message to client                WAITED SHORT TIME            2
         1 reliable message                         WAITING                      2
         1 latch: shared pool                       WAITED SHORT TIME            1
         1 SQL*Net more data from client            WAITED SHORT TIME            1
         3 reliable message                         WAITING                      1
         2 reliable message                         WAITING                      1

通过查看latch id找到latch name(latch id为p2)

SQL> select p2,count(1) from v$session a where a.event='latch free' group by p2 order by 2 desc;
        P2   COUNT(1)
---------- ----------
       559        185
        30          1
SQL> /
        P2   COUNT(1)
---------- ----------
       559        200
SQL> /
        P2   COUNT(1)
---------- ----------
       559        202
SQL> select * from v$latchname where latch#=559;
    LATCH# NAME                                                             DISPLAY_NAME                                                    D
---------- ---------------------------------------------------------------- -----------------------------------------------------------------
       559 Result Cache: RC Latch                                           Result Cache: RC Latch                                          0

 

result cache特效处于开启状态

 

SQL> show parameter result
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_optimizer_ads_use_result_cache      boolean     FALSE
client_result_cache_lag              big integer 3000
client_result_cache_size             big integer 0
result_cache_max_result              integer     5
result_cache_max_size                big integer 188768K
result_cache_mode                    string      MANUAL
result_cache_remote_expiration       integer     0

 

查询到相关BUG 22911454

12c库latch free等待事件过高--Result Cache: RC Latch_第1张图片

12c库latch free等待事件过高--Result Cache: RC Latch_第2张图片

在库中查看/*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30)的类似sql

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,AFFINITY FROM "SYS"."SCHEDULER$_CLASS" "SCHEDULER$_CLASS" WHERE 1=1
71s5km0f48aw5

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,AFFINITY FROM "SYS"."SCHEDULER$_CLASS" "SCHEDULER$_CLASS" WHERE 1=1
71s5km0f48aw5

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,AFFINITY FROM "SYS"."SCHEDULER$_CLASS" "SCHEDULER$_CLASS" WHERE 1=1
71s5km0f48aw5

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,AFFINITY FROM "SYS"."SCHEDULER$_CLASS" "SCHEDULER$_CLASS" WHERE 1=1
71s5km0f48aw5

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,NEXT_START_DATE,DURATION,FLAGS FROM "SYS"."SCHEDULER$_WINDOW" "SCHEDULER$_WINDOW"1
f7kq0zhxa0dk9

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,NEXT_START_DATE,DURATION,FLAGS FROM "SYS"."SCHEDULER$_WINDOW" "SCHEDULER$_WINDOW"1
f7kq0zhxa0dk9

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,NEXT_START_DATE,DURATION,FLAGS FROM "SYS"."SCHEDULER$_WINDOW" "SCHEDULER$_WINDOW"1
f7kq0zhxa0dk9

SELECT /*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */ OBJ#,NEXT_START_DATE,DURATION,FLAGS FROM "SYS"."SCHEDULER$_WINDOW" "SCHEDULER$_WINDOW"1
 

 

结论:

该库为12.1,cdb中有较高的Result Cache: RC Latch

,result cache处于打开状态,且sql中包含了“/*+ RESULT_CACHE (SYSOBJ=TRUE SHELFLIFE=30) */”字样,基本可以确定当时该库触发了BUG 22911454

虽然打过180417的补丁,但是还是触发了bug,该补丁已发布,而且有基于180417平台的补丁。

 

解决办法:

1.打包含或针对该BUG的补丁

2.关闭result cache特效

参考命令:

alter system set result_cache_max_size=0 scope=both sid=‘*’;

 

 

 

你可能感兴趣的:(ORACLE,TROUBLESHOOTING)