[Oracle 工程师手记] 记一次 MVIEW 刷新慢的分析

刷新慢的原因分析:

客户观察到 MVIEW 的刷新很慢,从AWR 报告中的 ,可以看到 "enq: JI - contention"。

Top 10 Foreground Events by Total Wait Time
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                          Total Wait       Avg   % DB Wait
Event                                Waits Time (sec)      Wait   time Class
------------------------------ ----------- ---------- --------- ------ --------
enq: JI - contention                    93     3594.5   38.65 s   49.9 Other
DB CPU                                         2062.4             28.6

 向客户要了 MVIEW 定义:

CREATE MATERIALIZED VIEW U1R.ST_RV
  ON PREBUILT TABLE USING INDEX
    REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 1/1440
    AS SELECT * FROM U1R.ST_RV@MYLINK;


JI enque 是多个session 执行同一个 MVIEW 时,为了保证不并行进行而使用的一种机制。enq: JI - contention 待机,表明执行同一个 MVIEW 刷新的 JOB/session 太多了。这个 MVIEW 每1分钟刷新一次。有可能一次刷新尚未结束,下一次刷新又要来了,多个准备刷新的session 一起,在竞争 JI enque。

建议客户用 "alter materialized view <MVIEW> refresh fast start with",来减少MVIEW刷新的频度。调整后,问题得到了解决。

posted @ 2021-04-09 20:08  健哥的数据花园  阅读(218)  评论(0编辑  收藏  举报