Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

12

积分

0

好友

2

主题
1#
发表于 2013-1-10 14:24:17 | 查看: 4899| 回复: 5
有时在rac中做物化视图快速刷新时,会出现gc cr multi blockrequest,并且要等待好久刷新完成 ,是否可以根据 gv$bh 的来判断某张表 在哪个inst_id上的blocks数多,然后在那台 instance下 进行刷新会快一些?
我的想法是通过
  1. select owner username, inst_id, object_name object, subobject_name subobject, object_type, count(1) blocks
  2.   from dba_objects dbao, gv$bh gvbh where dbao.object_id  = gvbh.objd and dbao.owner in (select
  3.   username from gv$session where sid in (select session_id from gv$aw_calc)) group by owner, inst_id,
  4.   object_name, subobject_name, object_type order by count(1);
复制代码
查询,查看要刷新的表在那个instace上的blocks数多,然后在blocks多的那台instance上进行快速刷新,这样会不会减少 gc cr multi blockrequest的等待?
2#
发表于 2013-1-10 20:23:03
10046 trace or  awrsqrpt report

回复 只看该作者 道具 举报

3#
发表于 2013-1-15 21:07:30
本帖最后由 david058 于 2013-1-15 21:17 编辑
Maclean Liu(刘相兵 发表于 2013-1-10 20:23
10046 trace or  awrsqrpt report


我只执行了
SQL> EXEC DBMS_MVIEW.REFRESH('GS_AC2I','F');


BEGIN DBMS_MVIEW.REFRESH('GS_AC2I','F'); END;

*
ERROR at line 1:
ORA-12008: error in materialized view refresh path
ORA-01013: user requested cancel of current operation
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2256
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2462
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2431
ORA-06512: at line 1

跑了两个多小时没停下,所以我强行停止了
当时系统还没上线,系统在压测,当时数据库空闲,只有运行快速刷新物化视图操作,我跟踪了那个session_wait,结果都是gc cr multi block request
  1. SQL> select * From v$session_wait t where sid=170;

  2.        SID       SEQ# EVENT                                                            P1TEXT                              P1 P1RAW     P2TEXT                                                                   P2 P2RAW            P3TEXT              P3 P3RAW             WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS                                                        WAIT_TIME SECONDS_IN_WAIT STATE
  3. ---------- ---------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ------------- ----------- ---------------------------------------------------------------- ---------- --------------- -------------------
  4.        170      16713 gc cr multi block request                                        file#                               31 000000000000001F block#                                                                162073 0000000000027919 class#       1 0000000000000001     3871361733          11 Cluster                                                                   0  0 WAITING

  5. SQL> /

  6.        SID       SEQ# EVENT                                                            P1TEXT                              P1 P1RAW     P2TEXT                                                                   P2 P2RAW            P3TEXT              P3 P3RAW             WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS                                                        WAIT_TIME SECONDS_IN_WAIT STATE
  7. ---------- ---------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ------------- ----------- ---------------------------------------------------------------- ---------- --------------- -------------------
  8.        170      16762 gc cr multi block request                                        file#                               32 0000000000000020 block#                                                                162168 0000000000027978 class#       1 0000000000000001     3871361733          11 Cluster                                                                   0  0 WAITING

  9. SQL> /

  10.        SID       SEQ# EVENT                                                            P1TEXT                              P1 P1RAW     P2TEXT                                                                   P2 P2RAW            P3TEXT              P3 P3RAW             WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS                                                        WAIT_TIME SECONDS_IN_WAIT STATE
  11. ---------- ---------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ------------- ----------- ---------------------------------------------------------------- ---------- --------------- -------------------
  12.        170      16775 gc cr multi block request                                        file#                               33 0000000000000021 block#                                                                161721 00000000000277B9 class#       1 0000000000000001     3871361733          11 Cluster                                                                   0  3 WAITING

  13. SQL> /

  14.        SID       SEQ# EVENT                                                            P1TEXT                              P1 P1RAW     P2TEXT                                                                   P2 P2RAW            P3TEXT              P3 P3RAW             WAIT_CLASS_ID WAIT_CLASS# WAIT_CLASS                                                        WAIT_TIME SECONDS_IN_WAIT STATE
  15. ---------- ---------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ---------------------------------------------------------------- ---------- ---------------- ------------- ----------- ---------------------------------------------------------------- ---------- --------------- -------------------
  16.        170      16834 gc cr multi block request                                        file#                               35 0000000000000023 block#                                                                161369 0000000000027659 class#       1 0000000000000001     3871361733          11 Cluster                                                                   0  0 WAITING

  17. SQL> /



  18. -- 后面也是在 gc cr multi block  所以就不贴了
复制代码

awr.html

394.31 KB, 下载次数: 743

回复 只看该作者 道具 举报

4#
发表于 2013-1-15 21:12:36
本帖最后由 david058 于 2013-1-17 16:30 编辑
  1. SQL> select owner username, inst_id, object_name object,  object_type, count(1) blocks
  2.   2    from dba_objects dbao, gv$bh gvbh where dbao.object_id  = gvbh.objd and dbao.owner ='TEST_USER' group by owner, inst_id,
  3.   3    object_name,  object_type order by count(1);

  4. USERNAME             INST_ID OBJECT                                   OBJECT_TYPE              BLOCKS
  5. -------------------- ------- ---------------------------------------- -------------------- ----------
  6. TEST_USER                   2 PK_GS_AC2I                               INDEX                     19311
  7. TEST_USER                   1 PK_GS_AC2I                               INDEX                     30235
  8. TEST_USER                   1 GS_AC2I                                  TABLE                     35339
  9. TEST_USER                   2 GS_AC2I                                  TABLE                    638901

  10. 115 rows selected.
复制代码
上面结果,如果需要快速刷新 表GS_AC2I ,是不是 在instance 2 刷新 gc cr multi block 相对就会比较少些?
还有发现在表GS_AC2I 上创建主键和索引会遇到  gc cr multi block 问题

回复 只看该作者 道具 举报

5#
发表于 2013-1-17 17:43:01
Event        Waits        Time(s)        Avg Wait(ms)        % Total Call Time        Wait Class
gc cr multi block request         281,323         3,805         14         94.7        Cluster

luster Wait Time (s)        CWT % of Elapsd Time        Elapsed Time(s)        CPU Time(s)        Executions         SQL Id        SQL Module        SQL Text
3,806.73        95.16        4,000.23        114.09        2        gw1zq9dnvg29f         SQL*Plus        BEGIN DBMS_MVIEW.REFRESH('GS_A...
2,439.09        96.20        2,535.41        95.75        2        ax42nanv2s1kk                 /* MV_REFRESH (DEL) */ DELETE ...
1,367.64        98.95        1,382.15        15.83        1        atq6d70jb8bm0                 /* MV_REFRESH (DEL) */ DELETE ...



BEGIN DBMS_MVIEW.REFRESH('GS_AC2I', 'F'); END;
/* MV_REFRESH (DEL) */ DELETE FROM "FJLSS_QZ"."GS_AC2I" SNA$ WHERE "BROWID" IN (SELECT /*+ NO_MERGE HASH_SJ */ * FROM (SELECT CHARTOROWID("MAS$"."M_ROW$$") RID$ FROM "FZCA"."MLOG$_SYS_ERROR_03"@"DBLINK_QZ_LSS" "MAS$" WHERE "MAS$".SNAPTIME$$ > :1 )MAS$)

/* MV_REFRESH (DEL) */ DELETE FROM "FJLSS_QZ"."GS_AC2I" SNA$ WHERE "BROWID" IN (SELECT /*+ NO_MERGE HASH_SJ */ * FROM (SELECT CHARTOROWID("MAS$"."M_ROW$$") RID$ FROM "FZCA"."MLOG$_SYS_ERROR_03"@"DBLINK_QZ_LSS" "MAS$" WHERE "MAS$".SNAPTIME$$ > :1 )MAS$)


以上3个SQL耗费大量cluster wait time,等待事件为gc cr multi block request

回复 只看该作者 道具 举报

6#
发表于 2013-1-17 17:50:12
summary:
1.
这个fast refresh 似乎并不"FAST"

2.
refresh带来了大量的物理读 1,141,467 *8k= 8.9g

3.
考虑优化网络,特别是udp buffer

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 03:21 , Processed in 0.051870 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569