创建表分区:
create table CDL_RAW_1X_12101_HWV6
(
CDL_GEN_OID VARCHAR2(64),
TIME_STAMP DATE,
S_HOUR INTEGER,
S_5MIN INTEGER,
INSERT_TIME DATE,
VENDOR_ID INTEGER,
VERSION_ID INTEGER,
CITY_ID INTEGER,
OMC_OID VARCHAR2(64),
OMC_SEQ VARCHAR2(64),
partition by range (CALL_START_TIME)
(
partition CDL1X_12101_HWV6_091200 values less than (TO_DATE(' 2009-09-12 00:59:59', 'SYYYY-MM
-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace DBS_DCDL_PT
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
),
分区的移动:
ALTER TABLE/INDEX 表名/索引名 MOVE PARTITION 分区名 移动后表空间名
ALTER TABLE score MOVE PARTITION score_q1 TABLESPACE education2 NOLOGGING
ALTER INDEX REBUILD PARTITION partition_name
分区的属性修改:
改变分区的存储参数,比如当预计到下一个分区的数据量比前一个分区的数据量剧增时。可以增加下一个分区
的MAXEXTENT参数。
ALTER TABLE/INDEX MODIFY PARTITION语句
ALTER INDEX REBUILD PARTITION partition_name
增加分区
需要增加存储空间时。
ALTER TABLE 表名 ADD PARTITION
ALTER TABLE stu_score ADD PARTITION score_q3 VALUES LESS THAN (1998,07,01) TABLESPACE
education2;
ALTER INDEX ADD PARTITION
分区的拆分:
分区过大以致于后备、恢复、管理都要很长时间,需要拆分成两个或多个分区。
ALTER TABLE/INDEX SPLIT PARTITION
ALTER TABLE stu_score SPLIT PARTITION score INTO (PARTITION score_q1 less than (50),PARTITION
score_q2 less than(100);
重新Rebuild索引
分区中数据清空:
当然可以使用SQL语句Delete删除分区中的数据。但是那样会很慢的。
ALTER TABLE TRUNCATE PARTITION
ALTER TABLE stu_score TRUNCATE PARTITION score_q3;
索引分区中的数据不可以清空。表中数据清空以后索引会自动变化
分区的合并:
将分区A中的数据Export出来。
删除A分区。
将数据Imp
这样A分区就和B分区合并在一起了
分区数据的交换:
非分区表中的数据和分区表的分区中的数据可以相互交换。O7向O8升级时用。
ALTER TABLE table_name1 EXCHANGE PARTITION partition_name WITH TABLE table_name2 WITHOUT
VALIDATION;
分区名称的改变:
当原有分区的硬盘损坏时,你用备份硬盘上的分区代替原有分区,这条指令是很有用的。
ALTER TABLE/INDEX RANAME PARTITION oldname TO newname
例:
alter table CDL_CFG_COUNTER_DEF drop constraint PK_CDL_CFG_COUNTER_DEF;
drop index PK_CDL_CFG_COUNTER_DEF;
rename CDL_CFG_COUNTER_DEF to CDL_CFG_COUNTER_DEF_OLD;
rename CDL_CFG_COUNTER_DEF_1 to CDL_CFG_COUNTER_DEF;
alter table CDL_CFG_COUNTER_DEF
add constraint PK_CDL_CFG_COUNTER_DEF primary key (CDL_ID)
using index
tablespace DBS_I_CDL;
--备份表
rename PERF_SECTOR_C_TOPN_3 to PERF_SECTOR_C_TOPN_3_old;
rename PERF_SECTOR_C_TOPN_3_1 to PERF_SECTOR_C_TOPN_3;
--插入内容
insert into PERF_SECTOR_C_TOPN_3_1 select * from PERF_SECTOR_C_TOPN_3 where
time_stamp>=to_date('2010-05-01','yyyy-mm-dd')
and time_stamp<to_date('2010-05-02','yyyy-mm-dd');
commit;
/*移动数据文件*/
alter database datafile '/mnt1/oradata/lgx_1.dbf' offline;
alter database rename file '/mnt1/oradata/lgx_1.dbf' to '/mnt1/oradata/LGX/lgx_1.dbf';
recover datafile '/mnt1/oradata/LGX/lgx_1.dbf';
alter database datafile '/mnt1/oradata/LGX/lgx_1.dbf' online;
/*调整大小*/
alter database tempfile 'F:\TEMP1.DBF' resize 10M;
/*表空间增加数据文件*/
alter tablespace TS_MBI1 add datafile '/mnt12/mbi1_11.dbf' size 2000M autoextend off;
评论