<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [原]給Oracle 11g Interval分區進行重命名

            Oracle 11g 眾多新特性中,我最喜歡的就是分區表增強,眾所周知很多大問題“化整為零”之后就不是個問題,分區表就是一種非常好用的“化整為零”的手段。

            還是說回正題吧,使用Interval分區不難,為分區/子分區的重命名也不難,我的分區表大致定義如下:

      CREATE TABLE Partition_Table
      (
        ....
        ....
        ....
      )
      PARTITION BY RANGE( MSGDATE ) INTERVAL( NUMTOYMINTERVAL(1,'MONTH') )
      SUBPARTITION BY LIST( DAY_V )

            分區和子分區的重命名語法如下:

      alter table <table_name> rename partition <partition_name> to <new_partition_name>;
      alter table <table_name> rename subpartition <subpartition_name> to <new_subpartition_name>;

            每當新數據觸發新建分區后,分區名字是系統給的,雖然不影響分區表的使用,但是看著很讓人迷茫:

      select 
        table_name ,
        partition_name,
        subpartition_name ,
        tablespace_name
      from user_tab_subpartitions 
      where subpartition_name like 'SYS%' ;
      TABLE_NAME                     PARTITION_NAME  SUBPARTITION_NAME  TABLESPACE_NAME
      ------------------------------ --------------- ------------------ ------------------------------
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP100        FIREWALL16
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP101        FIREWALL17
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP102        FIREWALL18
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP103        FIREWALL19
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP104        FIREWALL20
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP105        FIREWALL21
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP106        FIREWALL22
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP107        FIREWALL23
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP108        FIREWALL24
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP109        FIREWALL25
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP110        FIREWALL26
      
      TABLE_NAME                     PARTITION_NAME  SUBPARTITION_NAME  TABLESPACE_NAME
      ------------------------------ --------------- ------------------ ------------------------------
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP111        FIREWALL27
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP112        FIREWALL28
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP113        FIREWALL29
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP114        FIREWALL30
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP115        FIREWALL31
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP85         FIREWALL01
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP86         FIREWALL02
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP87         FIREWALL03
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP88         FIREWALL04
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP89         FIREWALL05
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP90         FIREWALL06
      
      TABLE_NAME                     PARTITION_NAME  SUBPARTITION_NAME  TABLESPACE_NAME
      ------------------------------ --------------- ------------------ ------------------------------
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP91         FIREWALL07
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP92         FIREWALL08
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP93         FIREWALL09
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP94         FIREWALL10
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP95         FIREWALL11
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP96         FIREWALL12
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP97         FIREWALL13
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP98         FIREWALL14
      P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP99         FIREWALL15

            將分區/子分區的名字改成得有意義才是王道。以下是用一個過程配合游標來改分區名,重點是是從high_value字段獲得該分區的范圍描述,其他沒什么了:

      declare 
       v_sql varchar(400);
       v_table_name user_tab_partitions.table_name%type;
       v_partition_name user_tab_partitions.partition_name%type;
       v_high_value varchar(200);
       v_tmp_partition_name user_tab_partitions.partition_name%type;
       cursor cur is 
         select 
            table_name ,
            partition_name ,
            high_value 
          from user_tab_partitions 
          where partition_name like 'SYS%' ;
      begin
        open cur;
        loop
          fetch cur into v_table_name,v_partition_name,v_high_value;
          exit when cur%notfound;
          v_tmp_partition_name := substr(v_high_value,11,10);
          v_tmp_partition_name := to_char( to_date(v_tmp_partition_name,'yyyy-mm-dd')-1 , 'yyyymm');
          v_sql := 'alter table '||v_table_name||' rename partition '
            ||v_partition_name
            ||' to P'||v_tmp_partition_name;
          dbms_output.put_line( v_sql );
          execute immediate v_sql;
        end loop;
        close cur;
      end;
      /

            由于改分區名屬于DDL語句,對于忙碌的系統來說很容易遇到ORA-00054這個錯誤:

      ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

            Oracle 11g 同時也引入了一個新特性——DDL Wait ,以前遇到這種情況要不就是找出那個該死的Transaction kill掉,要不就雇個人拼命堅持不懈地敲鍵盤跑這條DDL,直到成功執行,現在好了,這個人可以下崗了。只要設定ddl_lock_timeout這個參數就可以了,這個參數可以在實例級別和會話級別上設置,如果該值為0,遇到未提交事務時就會馬上報ORA-00054,如果設定為10,DDL語句會為這個事務最多等10秒,10秒內事務提交,DDL語句就會執行成功,否則10秒后再報ORA-00054。

      posted @ 2011-01-06 16:53  killkill  閱讀(4058)  評論(0)    收藏  舉報
      主站蜘蛛池模板: japanese边做边乳喷| 久久久精品2019中文字幕之3| 亚洲精品色哟哟一区二区| 日韩国产av一区二区三区精品| 兴隆县| 亚洲中文无码av永久不收费| 四虎国产精品永久地址99| 99热国产这里只有精品9| 无码人妻精品一区二区三区夜夜嗨| 高清中文字幕一区二区| 九色综合国产一区二区三区| 中文人妻av高清一区二区| 亚洲第一视频区| 午夜在线观看成人av| 亚洲大尺度无码专区尤物| 亚洲精品久久久久玩吗| 国产成人免费午夜在线观看| 国产男女猛烈无遮挡免费视频| 亚洲欧美综合中文| 亚洲精品一区久久久久一品av| 中文字幕永久精品国产| 欧美肥老太牲交大战| 精品一区二区免费不卡| 国产永久免费高清在线观看| 久久亚洲2019中文字幕| 欧美人与动牲猛交A欧美精品| 精品国产午夜福利在线观看| 天啦噜国产精品亚洲精品| 天堂mv在线mv免费mv香蕉| 制服丝袜美腿一区二区| 成人av专区精品无码国产| 好吊妞| 日韩精品中文字幕人妻| 久久精品国产免费观看频道| 国产精品久久久国产盗摄| 国产农村老熟女乱子综合| 九九九精品成人免费视频小说| 麻豆亚洲精品一区二区| 欧洲亚洲成av人片天堂网| 中文字幕少妇人妻精品| 国产免费高清69式视频在线观看 |