登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

herb

喜欢写博,喜欢安静,喜欢挑战!

 
 
 

日志

 
 

表分区详解  

2010-02-22 20:32:14|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  创建表分区:
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分区。
将数据Import进入B分区。
这样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;


 

  评论这张
 
阅读(748)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018