一周以來的工作總結–oracle分區的遷移

來源:互聯網
上載者:User

     這周很平靜,沒有客戶的紛紛擾擾。

     前一陣子寫了一些有關資料表的壓縮的東西,我現在感覺把資料壓縮了遷移走,或者隨即轉移走也是一種不錯的辦法。

     現在有這樣一張表:

     

CREATE TABLE TABLE_1 (   MONTH_ID VARCHAR2(10),   AREA_ID VARCHAR2(10),   SERI NUMBER)PARTITION BY RANGE(MONTH_ID)subpartition by list (AREA_ID)  subpartition template(      subpartition subpart_1 values ('1'),      subpartition subpart_2 values ('2'),      subpartition subpart_3 values ('3'),      subpartition subpart_4 values ('4'),      subpartition subpart_5 values ('5'),      subpartition subpart_6 values ('6'),      subpartition subpart_7 values ('7'),      subpartition subpart_8 values ('8'),      subpartition subpart_9values ('9'),      subpartition subpart_10 values ('10'),      subpartition subpart_default values (default)  )(   PARTITION PART_1 VALUES LESS THAN('201210'),   PARTITION PART_2 VALUES LESS THAN('201211'),   PARTITION PART_3 VALUES LESS THAN('201212'))

       分區的儲存是這樣的:

       現在可以將這個表的month_id為“201209”的資料移轉到users資料表空間去:

       

ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;

      

      出錯了,在網上查了一下應該要先把子分區移走。

      

ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_1 TABLESPACE USERS;ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_2 TABLESPACE USERS;ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_3 TABLESPACE USERS;ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_4 TABLESPACE USERS;...ALTER TABLE table_1 MOVE SUBPARTITION part_1_SUBPART_10 TABLESPACE USERS;

     然後在執行下面的:

     

ALTER TABLE table_1 MODIFY DEFAULT ATTRIBUTES FOR PARTITION part_1TABLESPACE USERS;

     這是結果:

     

      現在這個分區被轉移到了users中。

      如果沒有子分區會是什麼樣?重建這個表,這次不要子分區,只是按照month_id分區,然後執行轉移語句:

ALTER TABLE table_1 MOVE PARTITION part_1 TABLESPACE USERS;

      直接成功。這就說明了轉移帶有子分區的分區表的時候,應該從最低級的子分區開始轉移,然後轉移上一級的分區。

      那麼壓縮呢,將上面這個表的part_1壓縮,語句如下:

ALTER TABLE table_1 MOVE PARTITION part_1 COMPRESS;

      結果如下:

      

       建立有子分區的表,然後執行剛才的語句:

       

       相同的問題再次出現。也就是說得把子分區先壓縮了。但是我今天看到了一個更好用的語句:

       

ALTER TABLE table_1 MODIFY PARTITION part_1 COMPRESS;

     執行以後結果: 

       這樣就好了。

       

       今天建立表分區的時候有點忘了語句的寫法,這是不對的,這裡記錄一下:

       

CREATE TABLESPACE data_warehouse  DATAFILE 'D:\app\user\oradata\PC1\STORAGE2.DBF'  SIZE 50M AUTOEXTEND ON NEXT 50M  MAXSIZE 2048M;

     將使用者預設資料表空間改成剛才建立的資料表空間:

      

ALTER USER wings DEFAULT TABLESPACE data_warehouse;

      歡迎各位oracle愛好者加入我們的交流群:120244471。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.