ORACLE分区表、分区索引详解

ORACLE分区表、分区索引ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在分区内部去查找数据,一个分区一般保证四十多万条数据就比较正常了,但是分区表并非乱建立,而其维护性也相对较为复杂一点,而索引的创建也是有点讲究的,这些以下尽量阐述详细即可。

1、类型说明:
range分区方式,也算是最常用的分区方式,其通过某字段或几个字段的组合的值,从小到大,按照指定的范围说明进行分区,我们在INSERT数据的时候就会存储到指定的分区中。
List分区方式,一般是在range基础上做的二级分区较多,是一种列举方式进行分区,一般讲某些地区、状态或指定规则的编码等进行划分。
Hash分区方式,它没有固定的规则,由ORACLE管理,只需要将值INSERT进去,ORACLE会自动去根据一套HASH算法去划分分区,只需要告诉ORACLE要分几个区即可。

分区可以进行两两组合,ORACLE 11G以前两两组合都必须以range作为一级分区的开头,ORACLE目前最多支持2级别分区,但这个级别已经够我们使用了。
我这只以最简单的分区方式创建分区来说明问题,就拿range分区来说明问题吧(基本创建语句如下):
CREATE [url=]TABLE[/url] TABLE_PARTITION(
       COL1   NUMBER,
       COL2   VARCHAR2(10)
)
partition by range(COL1)(
          partition TAB_PARTOTION_01 values less than (450000),
          partition TAB_PARTOTION_02 values less than (900000),
          partition TAB_PARTOTION_03 values less than (1350000),
          partition TAB_PARTOTION_04 values less than (1800000),
          partition TAB_PARTOTION_OTHER values less THAN (MAXVALUE)
);

这个分区表创建了四个定长分区,理想情况下,存储450000条数据,扩展分区是超过这个数额的分区,当发现扩展分区有数据的时候,可以进行将扩展分区做SPLIT操作,这个后面说明,这里先说一下一些常用的分区表查询功能,我们先插入一些数据进去。
INSERT INTO TABLE_PARTITION(COL1,COL2)
VALUES(1,'数据测试');
INSERT INTO TABLE_PARTITION(COL1,COL2)
VALUES(23,'数据测试');
INSERT INTO TABLE_PARTITION(COL1,COL2)
VALUES(449000,'数据测试');

INSERT INTO TABLE_PARTITION(COL1,COL2)
VALUES(450000,'数据测试');



INSERT INTO TABLE_PARTITION(COL1,COL2)
VALUES(1350000,'数据测试');

INSERT INTO TABLE_PARTITION(COL1,COL2))
VALUES(900000,'数据测试');

INSERT INTO TABLE_PARTITION(COL1,COL2)
VALUES(1800000-1,'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值