ORACLE 迁移到 DB2:如何把 Oracle partition 转化到 DB2(3)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:19 点击:次
Oracle 中的列表分区(list partition)可以直接映射到 DB2 中的带生成列的表分区中,在前面已经讲过 Oracle 的列表分区的定义,DB2 的表分区的定义中提供了一个可以带生成列的方法,这样带生成列的表分区与 Oracle 的列表分区逻辑结构类似。
清单 3. Oracle 中的列表分区示例
p class="codesection">CREATE TABLE customer ( cust_id int, cust_prov varchar2(2) Chapter 2. Language compatibility features 127 ) PARTITION BY LIST (cust_prov) (PARTITION p1 VALUES ('AB', 'MB') tablespace tbsp_ab, PARTITION p2 VALUES ('BC') tablespace tbsp_bc, PARTITION p3 VALUES ('SA') tablespace tbsp_mb, … . PARTITION p13 VALUES ('YT') tablespace tbsp_yt, PARTITION p14 VALUES(DEFAULT) tablespace tbsp_remainder );
该表对应的 DB2 的带生成列的表分区的示例如下:
清单 4. DB2 中带生成列的表分区示例
p class="codesection">CREATE TABLE customer ( cust_id INT, cust_prov CHAR(2), cust_prov_gen GENERATED ALWAYS AS (CASE WHEN cust_prov = 'AB' THEN 1 WHEN cust_prov = 'BC' THEN 2 WHEN cust_prov = 'MB' THEN 1 WHEN cust_prov = 'SA' THEN 3 ... WHEN cust_prov = 'YT' THEN 13 ELSE 14 END) ) IN tbsp_ab, tbsp_bc, tbsp_mb, .... tbsp_remainder PARTITION BY RANGE (cust_prov_gen) (STARTING 1 ENDING 14 EVERY 1);
另外需要说的是把 oracle 的 List partition 映射到 db2 的 MDC 也可以是一种选择。
Oracle 中的哈希分区(hash partition)的定义在第一节中已经说明,那么在 DB2 中用到哈希算法的只有 DPF 的定义中,虽然在物理上 Oracle 没有 DPF 的概念,但是数据在逻辑上都能按照哈希算法分配到对应的分区上。因此在数据迁移是可以把 Oracle 的哈希分区映射到 DB2 中按照哈希算法分布的 DPF 上。而且在实际应用中,这比 Oracle 的哈希分区执行效率更好
如 Oracle 中哈希分区示例
清单 5. Oracle 中的哈希分区示例
p class="codesection">CREATE TABLE hash_table ( hash_part date, hash_data varchar2(20) ) PARTITION BY HASH(hash_part) (partition p1 tablespace tbsp1, partition p2 tablespace tbsp2 );
映射到 DB2 的 DPF 示例如下:
清单 6. DB2 中带生成列的表分区示例
p class="codesection">CREATE TABLE partition_table (partition_date date NOT NULL, partition_data VARCHAR(20) NOT NULL ) IN tbsp_parts DISTRIBUTE BY HASH (partition_date);
综上所述,Oracle 中的任一单一分区均可以在 DB2 中实现,反观之,DB2 特有的多维集群却不能在 Oracle 中实现,
图 3.Oracle 到 DB2 的分区映射
在 DB2 中模拟 Oracle 复合分区
前面已经对 oracle 的复合分区进行了见到的介绍,这里我们只对其中的两种进行详细的说明 (Range-list 和 Range-hash),并且介绍在 DB2 中如何与这两种复合分区进行映射。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>