oracle 清大表

來源:互聯網
上載者:User
--1: 建立新表Create table CC_EVENT_RESERVE_NEW tablespace tab_cc as select * from CC_EVENT_RESERVE where rownum < 1;--close loggingalter table CC_EVENT_RESERVE_NEW nologging;--set session parallel DMLalter session enable parallel dml;--2:將資料匯入新表中INSERT /*+ APPEND  PARALLEL( CC_EVENT_RESERVE_NEW,3) */ INTO CC_EVENT_RESERVE_NEW SELECT /*+  PARALLEL(CC_EVENT_RESERVE,3)  */       T.*    FROM CC_EVENT_RESERVE T;   COMMIT;--3:獲得新表中 最大的 EVENT_ID 值 ,這個值 在第9步會用到select max (EVENT_ID) from CC_EVENT_RESERVE_NEW;--4:在新表上建立索引alter table CC_EVENT_RESERVE_NEW  add constraint PK_CC_EVENT_RESERVE_NEW primary key (EVENT_ID)  using index   tablespace IDX_CC;--create indexCREATE INDEX IDX_CC_EVENT_RES_AB_ID_NEW ON CC_EVENT_RESERVE_NEW (ACCT_BOOK_ID ASC)  TABLESPACE IDX_CC  PARALLEL (DEGREE 3) NOLOGGING;--5:對新表進行表分析EXEC DBMS_STATS.GATHER_TABLE_STATS('USERNAME', 'CC_EVENT_RESERVE_NEW', DEGREE=>3, CASCADE=>TRUE,no_invalidate =>false);--6:開啟新表的LOGGING 功能 ,並且刪除 和原表有關係的 外鍵約束ALTER TABLE CC_EVENT_RESERVE_NEW LOGGING;ALTER TABLE CC_EVENT_RESERVE drop CONSTRAINT FK_CC_EVENT_REF_ACCT_BOOK; ALTER TABLE CC_EVENT_RESERVE drop CONSTRAINT FK_CC_EV_RES_REF_CC_EV_FORMAT;  --7:關閉新表索引的並行 開啟 日誌功能ALTER INDEX IDX_CC_EVENT_RES_AB_ID_NEW NOPARALLEL;ALTER INDEX IDX_CC_EVENT_RES_AB_ID_NEW LOGGING;--modify index attr.ALTER INDEX PK_CC_EVENT_RESERVE_NEW NOPARALLEL;ALTER INDEX PK_CC_EVENT_RESERVE_NEW LOGGING;--8:改名,將原表 改成 CC_EVENT_RESERVE_OLD 改成 CC_EVENT_RESERVERENAME CC_EVENT_RESERVE TO CC_EVENT_RESERVE_OLD;--rename tableRENAME CC_EVENT_RESERVE_NEW TO CC_EVENT_RESERVE;--9:可能會存有少量資料在原表中,沒有插入新表中,執行下面語句 補插,其中&EVENT_ID 用     第3步 查出的值替換INSERT /*+ APPEND  PARALLEL( CC_EVENT_RESERVE,3) */ INTO CC_EVENT_RESERVE SELECT /*+  PARALLEL(CC_EVENT_RESERVE_OLD ,3)  */       T.*    FROM CC_EVENT_RESERVE_OLD T WHERE  T.EVENT_ID>&EVENT_ID AND NOT EXISTS   (SELECT 1            FROM CC_EVENT_RESERVE_OLD T2           WHERE T2.EVENT_ID = T.EVENT_ID) ;COMMIT;--10:重新建立外鍵約束alter table CC_EVENT_RESERVE  add constraint FK_CC_EVENT_REF_ACCT_BOOK foreign key (ACCT_BOOK_ID)  references ACCT_BOOK (ACCT_BOOK_ID);alter table CC_EVENT_RESERVE  add constraint FK_CC_EV_RES_REF_CC_EV_FORMAT foreign key (EVENT_FORMAT_ID)  references CC_EVENT_FORMAT (EVENT_FORMAT_ID);  --11:刪除 CC_EVENT_RESERVE_OLD 表DROP TABLE CC_EVENT_RESERVE_OLD purge;--12:將索引名改回之前的名字ALTER INDEX IDX_CC_EVENT_RES_AB_ID_NEW RENAME TO IDX_CC_EVENT_RES_AB_ID;ALTER INDEX PK_CC_EVENT_RESERVE_NEW RENAME TO PK_CC_EVENT_RESERVE;--13 約束名字改回之前名字ALTER TABLE   CC_EVENT_RESERVE RENAME constraint PK_CC_EVENT_RESERVE_NEW  TO PK_CC_EVENT_RESERVE;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.