轉貼自itpub,有關將現有的大表進行分割槽的討論

orchidllh發表於2005-02-16
只將大家提到的解決放法貼在這裡,也許將來用得到呢。

1.逆向資料庫結構,工具erwin,pd等,生成SQL
2..根據需要建分割槽表.僅僅是表,新表名
3.insert into 新分割槽表名
select * from 原表;名
4.完成後,建主鍵/索引/表約束等
5.打斷與原表所有關係,
備份並刪除表.
or
rename 原表名 to anothername;
6.rename 新表名 to 原表名;
7.重建關係,重建trigger等.

1、先另建一個表,分割槽
create table AT1
partition by range(AT_bh)
(
partition p1 values less than (5000) tablespace dt1,
partition p2 values less than (10000) tablespace dt2,
partition p3 values less than (15000) tablespace dt3,
partition p0 values less than (MAXVALUE) tablespace dt0
)
as select * from AT nologing;

2、刪除原始表 drop table AT cascade constraints;

3、重新命名分割槽表
alter table AT1 rename to AT;

4、然後重建約束和索引

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/51862/viewspace-180580/,如需轉載,請註明出處,否則將追究法律責任。

相關文章