表分区

之前优化用过几次表分区,总结下,免得以后忘记掉:

1:哪个分区有用,哪个分区没用?

---表指明的表空间,分区未指明表空间,子分区指明表空间但是和表指明的表空间不一致,如下:

CREATE TABLE partition_test_bak
(
  post_date          VARCHAR2(8 CHAR)                      NOT NULL,
  multi_seq          NUMBER
)
TABLESPACE data_user
PARTITION BY RANGE(post_date) SUBPARTITION BY HASH(multi_seq)
(PARTITION partition_ranges_1 VALUES LESS THAN ('20100101')

(SUBPARTITION partition_ranges_1_sub1 TABLESPACE in_indx,
SUBPARTITION partition_ranges_1_sub2 TABLESPACE in_indx));

---上面的向表里面插入100w条记录发现data_user表空间未有任何变化,而in_indx表空间增加,说明实际上是以子分区指明的空间来存放数据

---下面的表指明的表空间和子分区指明的表空间一致

CREATE TABLE partition_test_bak
(
  post_date          VARCHAR2(8 CHAR)                      NOT NULL,
  multi_seq          NUMBER
)
TABLESPACE in_indx
PARTITION BY RANGE(post_date) SUBPARTITION BY HASH(multi_seq)
(PARTITION partition_ranges_1 VALUES LESS THAN ('20100101')
(SUBPARTITION partition_ranges_1_sub1 TABLESPACE in_indx,
SUBPARTITION partition_ranges_1_sub2 TABLESPACE in_indx));

----表的表空间和分区表空间一致,但和子分区的表空间不一致,试验证明是数据存放在子分区的表空间

CREATE TABLE partition_test_bak1
(
  post_date          VARCHAR2(8 CHAR)                      NOT NULL,
  multi_seq          NUMBER
)
TABLESPACE data_user
PARTITION BY RANGE(post_date) SUBPARTITION BY HASH(multi_seq)
(PARTITION partition_ranges_1 VALUES LESS THAN ('20100101') tablespace data_user
(SUBPARTITION partition_ranges_1_sub1 TABLESPACE in_indx,
SUBPARTITION partition_ranges_1_sub2 TABLESPACE in_indx));

2 查询表分区或者子分区的数据

select * from partition_test_bak1 partition(partition_ranges_1);

即使data_user表空间没有存放插入的数据,也应该能查出来数据,试验证明是可以查出来.

select * from partition_test_bak1 subpartition( partition_ranges_1_sub1);

3何时使用表空间分区:

对于数据量大的,不经常更新,更新数据的比例原小于总数据量的表,然后根据业务分析进行表分区.如果该表有大批量的插入操作,最好采用混合分区.尤其在RAC环境下,简单的分区只能解决部分问题,大并发的操作可能会引起RAC节点间的数据块正用.这是要么对表按照RAC的节点进行范围子分区(10g环境),或者调整应用,指定一个节点运行数据(在系统能够承受的压力范围内).

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22861158/viewspace-676694/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22861158/viewspace-676694/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值