激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢(xún)熱線(xiàn):0371-60135900 注冊(cè)有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應(yīng)
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補(bǔ)償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

        給Oracle 11g Interval分區(qū)進(jìn)行重命名

        發(fā)布時(shí)間:  2012/9/14 16:33:43

        Oracle 11g 眾多新特性中,我最喜歡的就是分區(qū)表增強(qiáng),眾所周知很多大問(wèn)題“化整為零”之后就不是個(gè)問(wèn)題,分區(qū)表就是一種非常好用的“化整為零”的手段。
        還是說(shuō)回正題吧,使用Interval分區(qū)不難,為分區(qū)/子分區(qū)的重命名也不難,我的分區(qū)表大致定義如下:

         
        -
         

        1 CREATE TABLE Partition_Table 

        2 ( 

        3   .... 

        4   .... 

        5   .... 

        6 ) 

        7 PARTITION BY RANGE( MSGDATE ) INTERVAL( NUMTOYMINTERVAL(1,'MONTH') ) 

        8 SUBPARTITION BY LIST( DAY_V )

              分區(qū)和子分區(qū)的重命名語(yǔ)法如下:

         
        1 alter table <table_name> rename partition <partition_name> to <new_partition_name>; 

        2 alter table <table_name> rename subpartition <subpartition_name> to <new_subpartition_name>;

              每當(dāng)新數(shù)據(jù)觸發(fā)新建分區(qū)后,分區(qū)名字是系統(tǒng)給的,雖然不影響分區(qū)表的使用,但是看著很讓人迷茫:

         
        1 select 

        2   table_name , 

        3   partition_name, 

        4   subpartition_name , 

        5   tablespace_name 

        6 from user_tab_subpartitions  

        7 where subpartition_name like 'SYS%' ;

         
        01 TABLE_NAME                     PARTITION_NAME  SUBPARTITION_NAME  TABLESPACE_NAME 

        02 ------------------------------ --------------- ------------------ ------------------------------ 

        03 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP100        FIREWALL16 

        04 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP101        FIREWALL17 

        05 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP102        FIREWALL18 

        06 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP103        FIREWALL19 

        07 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP104        FIREWALL20 

        08 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP105        FIREWALL21 

        09 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP106        FIREWALL22 

        10 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP107        FIREWALL23 

        11 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP108        FIREWALL24 

        12 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP109        FIREWALL25 

        13 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP110        FIREWALL26 

        14   

        15 TABLE_NAME                     PARTITION_NAME  SUBPARTITION_NAME  TABLESPACE_NAME 

        16 ------------------------------ --------------- ------------------ ------------------------------ 

        17 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP111        FIREWALL27 

        18 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP112        FIREWALL28 

        19 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP113        FIREWALL29 

        20 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP114        FIREWALL30 

        21 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP115        FIREWALL31 

        22 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP85         FIREWALL01 

        23 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP86         FIREWALL02 

        24 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP87         FIREWALL03 

        25 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP88         FIREWALL04 

        26 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP89         FIREWALL05 

        27 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP90         FIREWALL06 

        28   

        29 TABLE_NAME                     PARTITION_NAME  SUBPARTITION_NAME  TABLESPACE_NAME 

        30 ------------------------------ --------------- ------------------ ------------------------------ 

        31 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP91         FIREWALL07 

        32 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP92         FIREWALL08 

        33 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP93         FIREWALL09 

        34 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP94         FIREWALL10 

        35 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP95         FIREWALL11 

        36 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP96         FIREWALL12 

        37 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP97         FIREWALL13 

        38 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP98         FIREWALL14 

        39 P_MYSYSLOG_IL_2010             SYS_P116        SYS_SUBP99         FIREWALL15

              將分區(qū)/子分區(qū)的名字改成得有意義才是王道。以下是用一個(gè)過(guò)程配合游標(biāo)來(lái)改分區(qū)名,重點(diǎn)是是從high_value字段獲得該分區(qū)的范圍描述,其他沒(méi)什么了:

         
        01 declare 

        02  v_sql varchar(400); 

        03  v_table_name user_tab_partitions.table_name%type; 

        04  v_partition_name user_tab_partitions.partition_name%type; 

        05  v_high_value varchar(200); 

        06  v_tmp_partition_name user_tab_partitions.partition_name%type; 

        07  cursor cur is 

        08    select 

        09       table_name , 

        10       partition_name , 

        11       high_value  

        12     from user_tab_partitions  

        13     where partition_name like 'SYS%' ; 

        14 begin

        15   open cur; 

        16   loop 

        17     fetch cur into v_table_name,v_partition_name,v_high_value; 

        18     exit when cur%notfound; 

        19     v_tmp_partition_name := substr(v_high_value,11,10); 

        20     v_tmp_partition_name := to_char( to_date(v_tmp_partition_name,'yyyy-mm-dd')-1 , 'yyyymm'); 

        21     v_sql := 'alter table '||v_table_name||' rename partition '

        22       ||v_partition_name 

        23       ||' to P'||v_tmp_partition_name; 

        24     dbms_output.put_line( v_sql ); 

        25     execute immediate v_sql; 

        26   end loop; 

        27   close cur; 

        28 end; 

        29 /

              由于改分區(qū)名屬于DDL語(yǔ)句,對(duì)于忙碌的系統(tǒng)來(lái)說(shuō)很容易遇到ORA-00054這個(gè)錯(cuò)誤:

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

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

         


        本文出自:億恩科技【mszdt.com】

        服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
      9. 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話(huà):0371-60135900
      10. 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話(huà):0371-60135900
      11. 專(zhuān)注服務(wù)器托管17年
        掃掃關(guān)注-微信公眾號(hào)
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
          0
         
         
         
         

        0371-60135900
        7*24小時(shí)客服服務(wù)熱線(xiàn)