ITPub博客

首页 > 数据库 > Oracle > 【恩墨学院】分区表可以使用不同BLOCK_SIZE的表空间吗?

【恩墨学院】分区表可以使用不同BLOCK_SIZE的表空间吗?

原创 Oracle 作者:恩墨学院 时间:2017-12-27 17:59:43 0 删除 编辑

分区表可以使用不同BLOCK_SIZE的表空间吗?

编辑手记:Oracle数据库中有两种类型的块,标准块和非标准块。非标准块的引入给数据库的管理带来了方便,但在使用的时候也有一些限制。本文将会详细解读块大小对于分区表的影响。


看文档的时候提到了多个BLOCKSIZE对分区的影响,觉得比较有意思,于是测试了一下。


结论一:Oracle是不允许一个表的多个分区所在的表空间所处的表空间的BLOCKSIZE不同:

 OCM 培训课程

OCM 培训课程

OCM 培训课程

结论二:允许索引和表的BLOCKSIZE不一致:

 OCM 培训课程


索引的各个分区所在表空间要求BLOCKSIZE一致,但是不要求和表的分区BLOCKSIZE一致。表的不同索引可以存储在不同BLOCKSIZE的表空间上。


除了索引之外,表的LOB字段可以和表存放在不同的BLOCKSIZE的表空间中,同样的,分区表的LOB分区所在表空间的BLOCKSIZE可以和表分区所在表空间的BLOCKSIZE不同:

 


当然,分区的表的LOB的各个分区必须存在在相同的BLOCKSIZE的表空间上,否则会报错:

 OCM 培训课程


同样的限制条件也适用于索引组织表的OVERFLOW段:

 

OCM 培训课程

同样,不同的OVERFLOW分区所在表空间的BLOCKSIZE必须相同:


OCM 培训课程


基本上来说:

OVERFLOW段和LOB段允许和表或表分区的BLOCKSIZE不一致,而各个分区,无论是表分区、索引分区、OVERFLOW分区还是LOB分区都必须保持分区级的一致。


杨老师,LOB和OVER段与表的BLOCKSIZE是不是必须一致呢?

允许LOB和OVER段与表的BLOCKSIZE不一致是有一定意义的,比如在一个BLOCKSIZE为2K的数据库中,如果LOB段的大小也是2K,对于LOB的存储容量和效率都会产生不利的影响。

那不同分区的BLOCKSIZE呢?

其实也是有一定意义的,这样有利于不同数据库之间进行表空间迁移和EXCHANGE PARTITION操作,不过现在Oracle还不允许这种情况出现。


恩墨学院隶属于云和恩墨(北京)信息技术有限公司,致力于提供专业高水准的oracle数据库与大数据培训服务,挖掘培养大数据与数据库人才。恩墨学院提供包括个人实战技能培训、个人认证培训、企业内训在内的全方位大数据和数据库技术培训。ACE级别超强师资,配备专业实验室,沉浸式学习与训练,专业实验室、配备专业助教指导训练。能迅速融入专家圈子,业内资源丰富,迅速积累职场人脉。oracle数据库课程包括:Oracle DBA实战班、Oracle OCM考试、Oracle OCP考试等。



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

请登录后发表评论 登录
全部评论

注册时间:2014-01-16

  • 博文量
    180
  • 访问量
    163062