- กรณีแรก table เดียว แตก partition ทำได้โดยการสร้าง table ที่มี field เหมือนเดิม แต่เพิ่มส่วนของ partition มา เช่น
create table new_table ( email_id, category, date_of_mail, name )
partition by range(date_of_mail)
(
partition jan2001 values less than ( to_date( '01-feb-2001', 'dd-mon-yyyy') ),
partition feb2001 values less than ( to_date( '01-mar-2001', 'dd-mon-yyyy') ),
partition mar2001 values less than ( to_date( '01-apr-2001', 'dd-mon-yyyy') ),
...
partition sep2002 values less than ( to_date( '01-oct-2002', 'dd-mon-yyyy') ),
....
)
as
select * from category_date_wise_email;
// หลังจากนั้นก็ Drop table เดิมทิ้ง
drop table category_date_wise_email;
// Rename tables
rename new_table to category_date_wise_email;
- กรณี หลายๆ table มาเป็น table เดียว (ที่มี partition)
// สร้าง table ปลายทาง รูปแบบ partition tables
create table t( dt, OWNER, OBJECT_NAME,
SUBOBJECT_NAME,
OBJECT_ID, DATA_OBJECT_ID, OBJECT_TYPE, CREATED,
LAST_DDL_TIME, TIMESTAMP, STATUS, TEMPORARY,
GENERATED, SECONDARY )
partition by range(dt) (
partition part2000 values less than ( to_date( '01-jan-2001', 'dd-mon-yyyy') ),
partition part2001 values less than ( to_date( '01-jan-2002', 'dd-mon-yyyy') ),
partition part2002 values less than ( to_date( '01-jan-2003', 'dd-mon-yyyy') )
)
as
select sysdate dt, all_objects.* from all_objects where 1=0;
// ย้าย table ย่อยเข้ามา (ตัวอย่าง ย้าย table t3 มาอยู่ใน Part2000 ของ table t)
alter table t
exchange partition part2000
with table t3
without validation
/
อ้างอิง: http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:5532451667350
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment