<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tbwshc

    分區表部分分區不可用導致統計信息收集失效

    一個客戶碰到的具體需求,分區表中有些分區所在的表空間被OFFLINE,tb導致在刪除統計信息時報錯。

     

     

    下面通過例子來說明這個問題:

    SQL> create table t_part_read (id number)
    2 partition by range (id)
    3 (partition p1 values less than (10) tablespace ts1,
    4 partition p2 values less than (20) tablespace ts2,
    5 partition pmax values less than (maxvalue) tablespace users);

    Table created.

    SQL> insert into t_part_read select rownum from tab;

    54 rows created.

    SQL> commit;

    Commit complete.

    SQL> exec dbms_stats.gather_table_stats(user, 'T_PART_READ')

    PL/SQL procedure successfully completed.

    SQL> alter tablespace ts1 read only;

    Tablespace altered.

    SQL> exec dbms_stats.gather_table_stats(user, 'T_PART_READ')

    PL/SQL procedure successfully completed.

    SQL> alter tablespace ts1 offline;

    Tablespace altered.

    SQL> exec dbms_stats.gather_table_stats(user, 'T_PART_READ')
    BEGIN dbms_stats.gather_table_stats(user, 'T_PART_READ'); END;

    *
    ERROR at line 1:
    ORA-00376: file 6 cannot be read at this time
    ORA-01110: data file 6: '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_ts1_7w8l5fz1_.dbf'
    ORA-06512: at "SYS.DBMS_STATS", line 23829
    ORA-06512: at "SYS.DBMS_STATS", line 23880
    ORA-06512: at line 1

    如果將表空間只讀,并不會影響到表空間上的表或分區的統計信息的收集,因為收集過程只是讀取,而收集的結果信息是寫到SYSTEM表空間的。

    但是如果分區所在的表空間處于OFFLINE狀態,那么在統計信息收集的過程中就會報錯。

    有一個很簡單的方法可以解決這個問題,就是將被OFFLINE影響的分區的統計信息鎖定,這樣Oracle在收集統計信息時就會跳過鎖定的分區,通過這個辦法就可以避免統計信息收集過程中的報錯:

    SQL> exec dbms_stats.lock_partition_stats(user, 'T_PART_READ', 'P1')

    PL/SQL procedure successfully completed.

    SQL> exec dbms_stats.gather_table_stats(user, 'T_PART_READ')
    BEGIN dbms_stats.gather_table_stats(user, 'T_PART_READ'); END;

    *
    ERROR at line 1:
    ORA-00376: file 6 cannot be read at this time
    ORA-01110: data file 6: '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_ts1_7w8l5fz1_.dbf'
    ORA-06512: at "SYS.DBMS_STATS", line 23829
    ORA-06512: at "SYS.DBMS_STATS", line 23880
    ORA-06512: at line 1


    SQL> exec dbms_stats.gather_table_stats(user, 'T_PART_READ', granularity => 'PARTITION')

    PL/SQL procedure successfully completed.

    即使鎖定分區后,嘗試收集統計信息仍然報錯,這是因為Oracle默認除了要收集分區上的統計信息以外,還要收集表級的統計信息,而這就會造成被OFFLINE影響的分區也要被讀取。

    解決方法就是在收集統計信息的時候指定收集的粒度是分區,不收集表上的GLOBAL信息。

     


    posted on 2012-08-20 13:11 chen11-1 閱讀(1411) 評論(0)  編輯  收藏

    主站蜘蛛池模板: 久久99久久成人免费播放| 极品美女一级毛片免费| 午夜无码A级毛片免费视频| 亚洲自偷自偷图片| a级毛片毛片免费观看永久| 久久亚洲AV永久无码精品| 抽搐一进一出gif免费视频| 在线观看亚洲天天一三视| 中文字幕免费在线观看动作大片| 亚洲成人国产精品| 国产精品玖玖美女张开腿让男人桶爽免费看 | 日韩不卡免费视频| 国产成人精品亚洲2020| 日韩高清免费观看| 曰批全过程免费视频免费看 | 亚洲精品黄色视频在线观看免费资源| 国产亚洲视频在线观看网址| 亚洲国产精品成人久久蜜臀 | 日本不卡免费新一区二区三区| 亚洲AV人人澡人人爽人人夜夜| 13一14周岁毛片免费| 亚洲一本到无码av中文字幕| 国产成人啪精品视频免费网| 黄色视屏在线免费播放| 久久青青草原亚洲av无码app | 久久久久亚洲AV无码专区网站 | 国产亚洲人成A在线V网站| 久久免费视频网站| 亚洲av乱码一区二区三区香蕉| 日韩一区二区在线免费观看| 国产精品免费αv视频| 亚洲黄色一级毛片| 国产jizzjizz视频免费看| 免费一级毛片无毒不卡| 亚洲AV无码一区二区三区牛牛| 波多野结衣中文一区二区免费| 国内精品免费视频精选在线观看 | 亚洲人成网站日本片| 免费人成年激情视频在线观看 | 四虎影视大全免费入口| 99精品免费视频|