分区表SPLIT过程和注意事项【SPLIT OF PARTITION TABLE PROCEDURE AND TIPS】

简介:
 PARTIOTION表对于处理巨量数据来讲几乎是个killer function!
    我对于系统中的大表和超大型表,主要的处理方式是根据公司前台应用的操作特性,对于一定周期后,只进行查询的数据,进行分区压缩,只是保留近期内可能还涉及DML操作的表在“最近”(我的分区名称:recent)中,用普通的存储方式进行保存。
    而对于PARTITION的表来讲,之后的管理工作还是比较多的。
    其中涉及到的工作中比较多的就是SPLIT(分裂)和DROP PARTITION(11g中应该就不会这样痛苦了)。
    通过我对SPLIT过程的分析,发现SPLIT内部操作的基本过程:
    1.发出命令后,ORACLE在我制定的新分区所在表空间中建立一个TEMPERORARY类型的表,其实这个表就是未来的新分区。将符合条件的数据导入。
    2.在完成第一步后,ORACLE在原被分区的分区所在表空间上,又建立了一个TEMPRORARY类型的临时表,这时ORACLE开始将不属于新分区的数据在导入到这张临时表中。如果使用了UPDATE INDEXES的话,ORACLE最后还要维护索引。
    3.完成后,改变表名(更新数据字典)
    知道了这样的过程,我们在做SPLIT操作时,需要注意:
    在被分区的分区所在的表空间上,需要有足够的剩余表空间。当然,如果使用UPDATE INDEXES的话,索引所在的表空间也需要必要的剩余表空间。
    如果说有LOCAL INDEX,在系统资源允许的情况下,带上 update indexes子句是不错的选择。
    另外,这个分裂过程也解除了我的一个忧虑,被分裂的分类数据是否要重组?现在看是没有必要的,因为ORACLE已经为你重组了这个分区中的数据了。
-------
   ORACLE版本:10.2.0.1

   OS        :HP-UX B.11.23 U ia64

本文转自Be the miracle!博客51CTO博客,原文链接http://blog.51cto.com/miracle/51516如需转载请自行联系原作者


Larry.Yue

相关文章
|
关系型数据库 PostgreSQL
PostgreSQL listagg within group (order by) 聚合兼容用法 string_agg ( order by) - 行列变换,CSV构造...
标签 PostgreSQL , order-set agg , listagg , string_agg , order 背景 listagg — Rows to Delimited Strings The listagg function transforms values from a g...
6187 0
|
SQL 存储 缓存
【MySQL从入门到精通】【高级篇】(二十四)EXPLAIN中select_type,partition,type,key,key_len字段的剖析
上一篇文章我们介绍了【MySQL从入门到精通】【高级篇】(二十三)EXPLAIN的概述与table,id字段的剖析,重点对EXPLAIN命令进行了阐述,并且对table,id字段进行了剖析。这篇文章接着对EXPLAIN命令的其余字段进行解析,本文将介绍select_type,partition,type,key,key_len 字段的含义。其中:读者朋友们需要重点掌握 select_type,type 两个字段的含义。
253 0
【MySQL从入门到精通】【高级篇】(二十四)EXPLAIN中select_type,partition,type,key,key_len字段的剖析
|
关系型数据库 MySQL
十一、GROUP_CONCAT的使用
十一、GROUP_CONCAT的使用
462 0
|
SQL Go
【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例
【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例目录 0、填充数据1、使用row_number()函数对订单进行编号,按照订单时间倒序。
13084 0
|
关系型数据库 MySQL 索引
浅谈create table as 和 insert into select 复制表遇到的问题
之前做一次表压缩测试,在准备原表时需要数据量比较大的表,通过insert into select 的方式将几个表的数据复制到一个表,产生的一些问题~
3241 0