创建hash(哈希)分区!

--创建hash分区表:

SQL> create table t_partition_hash (id number,name varchar2(50))
  2  partition by hash(id)(
  3  partition t_hash_p1 tablespace tbspart01,
  4  partition t_hash_p2 tablespace tbspart02,
  5  partition t_hash_p3 tablespace tbspart03,
  6  partition t_hash_p4 tablespace tbspart04);

表已创建。

SQL> select TABLE_NAME,PARTITIONING_TYPE,PARTITION_COUNT from user_part_tables where TABLE_NAME = 'T_PARTITION_HASH';  

TABLE_NAME                     PARTITI PARTITION_COUNT
------------------------------ ------- ---------------
T_PARTITION_HASH               HASH                  4

SQL> select PARTITION_NAME,HIGH_VALUE,TABLESPACE_NAME from user_tab_partitions where TABLE_NAME = 'T_PARTITION_HASH';  

PARTITION_NAME                 HIGH_VALUE TABLESPACE_NAME
------------------------------ ---------- ------------------------------
T_HASH_P1                                 TBSPART01
T_HASH_P2                                 TBSPART02
T_HASH_P3                                 TBSPART03
T_HASH_P4                                 TBSPART04

 

要实现同样效果,你还可以这样:(这里分区数量和可供使用的表空间数量之间没有直接对应关系。分区数并不一定要等于表空间数。)

SQL> drop table t_partition_hash;

表已删除。

SQL> create table t_partition_hash (id number,name varchar2(50))
  2  partition by hash(id) partitions 3 store in(tbspart01,tbspart02,tbspart03);

表已创建。

SQL> select TABLE_NAME,PARTITIONING_TYPE,PARTITION_COUNT from user_part_tables where TABLE_NAME = 'T_PARTITION_HASH';

TABLE_NAME                     PARTITI PARTITION_COUNT
------------------------------ ------- ---------------
T_PARTITION_HASH               HASH                  3

SQL> select PARTITION_NAME,HIGH_VALUE,TABLESPACE_NAME from user_tab_partitions where TABLE_NAME = 'T_PARTITION_HASH';  

PARTITION_NAME                 HIGH_VALUE TABLESPACE_NAME
------------------------------ ---------- ------------------------------
SYS_P24                                   TBSPART01
SYS_P25                                   TBSPART02
SYS_P26                                   TBSPART03


--创建Global索引hash分区:

SQL> create index idx_partI_hash_id on t_partition_hash(id)
  2  global partition by hash(id) partitions 3 store in(tbspart01,tbspart02,tbspart03);

索引已创建。

SQL> select index_name,partitioning_type,partition_count from user_part_indexes where index_name = 'IDX_PARTI_HASH_ID';

INDEX_NAME                     PARTITI PARTITION_COUNT
------------------------------ ------- ---------------
IDX_PARTI_HASH_ID              HASH                  3

SQL> select partition_name,high_value,tablespace_name from user_ind_partitions where index_name = 'IDX_PARTI_HASH_ID'; 

PARTITION_NAME                 HIGH_VALUE TABLESPACE_NAME
------------------------------ ---------- ------------------------------
SYS_P30                                   TBSPART01
SYS_P31                                   TBSPART02
SYS_P32                                   TBSPART03

 

综上:
Ø 对于global索引分区而言,在10g中只能支持range分区和hash分区,因此后续示例中不会再提及。
Ø 对于local索引分区而言,其分区形式完全依赖于索引所在表的分区形式,不管从创建语法还是理解难度均无技术含量,因此后续也不再提供示例。
Ø 注意,在创建索引时如果不显式指定global或local,则默认是global。
Ø 注意,在创建global索引时如果不显式指定分区子句,则默认不分区(废话)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值