DB2数据库并置发生时,表要如何改变更?

数据库
我们今天主要向大家描述的是DB2数据库并置,以及对要发生DB2数据库并置这一情况,表必须要进行配置的描述,以下就是正文的主要内容讲述。

以下的文章主要是介绍DB2数据库并置,以及对要发生DB2数据库并置这一情况,表必须要进行配置的描述,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其有更深的了解。

DB2数据库并置

并置(collocation)是安置同一个数据库分区中包含相关数据的不同表中的行。并置的表使 DB2 可以更有效地使用连接策略。

您可能会发现,作为对特定查询的响应,两个或多个表频繁地提供数据。在此情况下,您会希望这样的表中的相关数据的位置尽可能地靠近。在数据库被物理地划分为两个或多个数据库分区的环境中,必须有一种方法可将划分的表的相关碎片尽可能地靠近。完成此过程的功能称为表并置。

当存取用于连接或子查询的多个表时,DB2(R) 通用数据库(DB2 UDB)能够识别要连接的数据是否位于相同数据库分区上。于是 DB2 就可以在存储数据的数据库分区上执行连接或子查询,而不必在数据库分区之间移动数据。这种局部地执行连接或子查询的能力具有显著的性能优点。

要发生DB2数据库并置,表必须:

在相同数据库分区组中,且这个数据库分区组不能处在再分配期间。(在再分配期间,数据库分区组中的表可能使用不同的分区映射 —— 它们不是并置的。)

有包含相同数量的列的分区键。

分区键的相应列是分区兼容的。

如果一个表在一个单分区数据库分区组中,且该分区组是在另一个表所在的同一个分区上定义的,那么也可以发生并置。

总结:

比如int, char, varchar之类能够被散列的数据类型就是分区兼容性得,其他类似LOB, LF等类型不能被散列的就不是

对于DB2数据库并置,比如我有两个表A,B,其中A包含列c1 int, c2 char,B包含c1 varchar, c2 int

然后表A按照c1分区,表B按照c2分区,也就是说,当用户插入一行数据到表A,首先会对A.c1进行散列,然后模分区数量,把新的数据插入相应的分区,而对于表B则是对B.c2进行相同算法散列。

这样当查询select * from c1,c2 where A.c1=B.c2的时候,由于A.c1和B.c2的数据类型相同,使用相同的散列算法,如果A.c1与B.c2相等,那么他们肯定在同一分区,这样的话进行join的时候就不需要再分区间移动数据,只需要在本分区join完后向coord partition返回数据。

DB2数据库并置

以上的相关内容就是对DB2数据库并置的介绍,望你能有所收获。

【编辑推荐】

  1. DB2 9.5的数据库内存保护,轻松掌握!
  2. DB2强制优化器的使用“窍门”不得不看
  3. DB2快照函数如何正确理解?
  4. 使用重定向恢复DB2数据库的操作技巧是什么?
  5. 使用DB2临时表时哪些事项是值得关注?

 

责任编辑:佚名 来源: QQread
相关推荐

2010-08-10 09:37:29

DB2 9.7

2010-09-07 09:31:03

DB2数据库锁表

2010-08-31 17:34:46

DB2

2010-08-26 16:15:25

DB2数据库管理

2010-08-03 11:33:30

DB2并置

2010-08-09 13:08:45

DB2数据库

2010-11-03 11:36:53

访问DB2表

2010-08-26 10:37:40

DB2Q复制

2010-08-03 13:56:11

DB2表复制

2010-08-25 10:50:48

DB2数据库

2011-03-11 16:02:03

DB2数据库安装

2010-11-01 11:30:41

DB2数据库权限

2010-11-03 16:21:18

DB2数据库授权

2010-09-30 11:49:21

DB2数据库权限

2010-08-04 13:30:49

2010-09-01 09:13:29

DB2表空间

2010-09-06 17:24:48

连接DB2数据库

2009-07-06 17:34:26

远程复制DB2

2010-07-29 09:14:57

DB2数据库表

2011-05-16 14:58:09

DB2数据库备份
点赞
收藏

51CTO技术栈公众号