<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)  編輯  收藏

    主站蜘蛛池模板: 免费乱码中文字幕网站| 国产成人yy免费视频| 国产精品冒白浆免费视频| 人妻仑乱A级毛片免费看| 精品免费视在线观看| 中国亚洲女人69内射少妇| 日日躁狠狠躁狠狠爱免费视频| 性做久久久久免费看| 亚洲中久无码永久在线观看同| 成人免费网站久久久| 国产精品亚洲w码日韩中文| 亚洲性天天干天天摸| 久久久久久久久久国产精品免费 | 中文字幕亚洲精品无码| 中文字幕无码免费久久99| 亚洲av无码电影网| 好吊妞在线新免费视频| 亚洲精品国产高清在线观看| 国产一级淫片a视频免费观看| 另类专区另类专区亚洲| 亚洲伊人久久综合影院| 成人免费区一区二区三区| 亚洲综合男人的天堂色婷婷| www.999精品视频观看免费| 亚洲av成本人无码网站| 亚洲欧洲久久av| a级特黄毛片免费观看| 亚洲国产一区二区a毛片| 成人奭片免费观看| 添bbb免费观看高清视频| 亚洲日韩欧洲乱码AV夜夜摸| 香蕉视频亚洲一级| 久久久久国产亚洲AV麻豆| 一区二区三区观看免费中文视频在线播放 | 麻豆精品国产免费观看| 男女猛烈激情xx00免费视频| 亚洲不卡中文字幕无码| 青青青免费国产在线视频小草| 蜜桃传媒一区二区亚洲AV| 久久久久久久综合日本亚洲| 又粗又大又黑又长的免费视频 |