网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > DB2教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.将XML应用程序从DB2 8.x迁移到Vi.
.DB2如何提高IMPORT命令的性能.
.轻松解决IBM DB2数据库定位锁等待.
.浅谈DB2数据库的故障处理及最佳实.
.如何操作Excel读取数据导入DB2数.
.使用 UIMA 和 DB2 Intelligent M.
.DB2信息集成提速异构信息管理.
.为DB2数据库创建表空间.
.DB2高可用性灾难恢复(HADR)的限.
.DBA应聘者在面试过程中经常被问及.
.选择适合自己的DB2 9.5客户机连通.
.深入了解DB2 Universal Database.
.执行DB2的命令有哪些方式?.
.解决DB2数据库备份参数修改后的报.
.IBM DB2数据库中应当如何更新执行.
.Window下修改DB2密码后不能启动的.
.为什么修改机器名后DB2实例会无法.
.用AWK实现DB2 数据库 Schema的同.
.UNIX环境下手动安装DB2数据库的详.
.使用DB2look重新创建优化器访问计.

正确认识DB2数据库分区兼容性和并置概念

发表日期:2008-7-16


最近在看一些DB2的DPF方面的东西,有两个概念有一些搞不懂。

就是“分区兼容性”和“并置”两个概念。

查找了一些相关资料,内容如下:


分区兼容性


可对分区键的对应列的基本数据类型进行比较,并可将它们声明为是分区兼容的(partition compatible)。分区兼容的数据类型具有如下属性:具有相同值但有不同类型的两个变量会按相同的分区算法映射至同一个分区号。 分区兼容性具有下列特征:


基本数据类型与另一个相同的基本数据类型兼容。

内部格式用于 DATE、TIME 和 TIMESTAMP 数据类型。它们彼此都不兼容,且都不与 CHAR 兼容。

分区兼容性不受带有 NOT NULL 或 FOR BIT DATA 定义的列的影响。

对兼容数据类型的 NULL 值的处理是完全相同的;对不兼容数据类型的 NULL 值的处理可能不相同。

用户定义的类型的基本数据类型用于分析分区兼容性。

对分区键中相同值的小数的处理是完全相同的,即使它们的标度和精度不同。

字符串中(CHAR、VARCHAR GRAPHIC 或 VARGRAPHIC)的尾部空格会被散列算法忽略。

BIGINT、SMALLINT 和 INTEGER 是兼容的数据类型。

REAL 和 FLOAT 是兼容的数据类型。

不同长度的 CHAR 和 VARCHAR 是兼容的数据类型。

GRAPHIC 和 VARGRAPHIC 是兼容的数据类型。

分区兼容性不适用于 LONG VARCHAR、LONG VARGRAPHIC、CLOB、DBCLOB 和 BLOB 数据类型,因为它们不能作为分区键。


并置

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


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


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

要发生并置,表必须:


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

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

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

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


总结:


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

对于并置,比如我有两个表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中游标的使用方法以及存储过程的写法 人气:1063
下一篇:使用REORG TABLE命令优化数据库的性能 人气:1087
浏览全部DB2的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐