前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分区表可以使用不同BLOCK_SIZE的表空间吗?

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

作者头像
数据和云
发布2018-03-08 10:11:24
1K0
发布2018-03-08 10:11:24
举报
文章被收录于专栏:数据和云数据和云

编辑手记: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的存储容量和效率都会产生不利的影响。

那不同分区的BLOCKSIZE呢?

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档