表分区通过把一个大表分成较小的、更易管理的存储对象,从而能够提升性能和可管理性。SAP Sybase IQ 16现在支持"范围"(IQ 15.X只支持这种类型)、"哈希"、"哈希-范围"(是一种分区加子分区的方式)等分区策略。分区可以共享表的属性,并且可以放在不同的dbspaces上独立地进行管理。
1. "范围"分区按照分区键值的范围把一个大表划划分为多个分区。范围分区是信息生命周期管理策略的一部分,范围分区能够缩短备份和恢复时间、提供更细粒度的数据校验、并且支持分层存储。
2. "哈希"分区是基于作用于分区键值上的哈希函数把数据映射到不同分区的一种分区策略。哈希分区能够提高大表上的关联(joins)操作和分布式查询(DQP)的性能。
3. "哈希-范围"分区提供了"哈希"分区以及"范围分区"两者具有的好处。"哈希"分区提供了最好的分布式查询性能;"范围子分区"做为信息生命周期管理策略的一部分提供了增强的可管理性。
注意:
(1) "范围"以及"哈希-范围"分区需要相应的VLDB Licenses(哈希分区不需要单独的License)。
(2) 如果被分区的数据位于一个offline的dbsapce中,那么表数据将不可访问。需要确保分区表所在的所有dbspaces是online
的。
(3) 只有"base tables"可以分区,全局临时表以及本地临时表都不能被分区。一个分区中的所有记录物理的存放在一起。
(4) 分区键不能包含如下类型的字段:
* LOB (BLOB or CLOB) 类型字段
* BINARY或 VARBINARY类型字段
* 长度超过255字节的CHAR 或 VARCHAR 类型字段
* BIT类型字段
* FLOAT/DOUBLE/REAL类型字段
(5) 分区键中的列(Partition key columns)能够包含NULL和缺省值。所有NULL值被映射到相同的分区。
(6) 对于"哈希"分区,分区键最多可以由8个字段组成;对于范围分区或者"哈希-范围"分区中的子范围分区,分区键只能是一
个字段。
(7) 可以定义最多1024个"范围"分区或子分区。
(8) 虽然"范围"分区和"哈希-范围"分区能够位于分离的dbsapces上,但是对于BLOB、CLOB、大于255个字节的CHAR、
VARCHAR、VARBINARY等列建议放在特定的dbspaces上。
SAP Sybase IQ 16.0的表分区虽然还不够完备,但是相比IQ 15版本还是有了很大的进步:毕竟通过"哈希分区"和"范围-哈希"分区能够提升查询的性能了!我相信,IQ 16的后续版本在表分区技术上会越做越好!
阅读(3186) | 评论(0) | 转发(0) |