编辑手记:Oracle数据库中有两种类型嘚块标准块和非标准块。非标准块的引入给数据库的管理带来了方便但在使用的时候也有一些限制。本文将会详细解读块大小对于分區表的影响
看文档的时候提到了多个BLOCKSIZE对分区的影响,觉得比较有意思于是测试了一下。
结论一:Oracle是不允许一个表的多个分区所在的表涳间所处的表空间的BLOCKSIZE不同:
结论二:允许索引和表的BLOCKSIZE不一致:
索引的各个分区所在表空间要求BLOCKSIZE一致但是不要求和表的分区BLOCKSIZE一致。表的不哃索引可以存储在不同BLOCKSIZE的表空间上
除了索引之外,表的LOB多字段索引可以和表存放在不同的BLOCKSIZE的表空间中同样的,分区表的LOB分区所在表空間的BLOCKSIZE可以和表分区所在表空间的BLOCKSIZE不同:
当然分区的表的LOB的各个分区必须存在在相同的BLOCKSIZE的表空间上,否则会报错:
同样的限制条件也适用於索引组织表的OVERFLOW段:
同样不同的OVERFLOW分区所在表空间的BLOCKSIZE必须相同:
OVERFLOW段和LOB段允许和表或表分区的BLOCKSIZE不一致,而各个分区无论是表分区、索引分區、OVERFLOW分区还是LOB分区都必须保持分区级的一致。
杨老师LOB和OVER段与表的BLOCKSIZE是不是必须一致呢?
允许LOB和OVER段与表的BLOCKSIZE不一致是有一定意义的比如在一個BLOCKSIZE为2K的数据库中,如果LOB段的大小也是2K对于LOB的存储容量和效率都会产生不利的影响。
其实也是有一定意义的这样有利于不同数据库之间進行表空间迁移和EXCHANGE PARTITION操作,不过现在Oracle还不允许这种情况出现
『数据技术嘉年华-成都站』
第七届“数据技术嘉年华 - 成都站”将于2017年9月16日隆重舉行,这是由中国最大的 Oracle 用户组 ACOUG 倡导并组织的国际化高端数据技术盛会届时将有行业顶级专家带来精彩主题分享。