用户名: 密码: 注册 找回密码
搜索   
收藏本站 设为主页
首页
新闻 供求 报价 技术 下载 商家 商城 博客
论坛
硬件学院 软件学院 解决方案
技术查找 
  按标题 按全文
相关技术
· 主流虚拟主机布阵方式浅...
· KVM主机切换系统轻松管理...
· 如何得到AIX系统安装时间...
· 服务器技术之负载均衡技...
· with语句指向自身的小办...
· IBM X380服务器-软驱的拆...
最近头条
· 所有主流Linux发行版本已...
· 从Unix迁移到Linux是否必...
· IBM System x 服务器帮助...
· 微软云计算平台Windows ...
· Intel企业级固态硬盘开始...
· IBM花费3年打造“网络故...
相关供求
· 221692-B23/HP多模15米L...
· SUN 300-1501
· SUN工作站B2000/B1000/B...
· 各种服务器配件
· SUN连接卡 X913A/SG-XPC...
· 服务器专家品牌服务器主...
Advertisement
 首页 > 技术频道 > 软件学院 > 浏览技术 关键字: DB2  数据库 
IBM DB2分区式数据库分区键的选择和更改
2006-8-16 10:00:13   Equal Null   来源:中华服务器网    点击:1918次   加入收藏夹

在 DB2 UDB 中分区键是指一个列(或一组列),用于确定将某行数据存储在哪个分区上。分区键是使用 CREATE TABLE 语句在创建表时定义的。当某个表所属的表空间分布在包含有多个分区的数据库分区组中时,如果未对该表定义分区键,缺省情况下将会使用主键的第一列创建分区键;若未指定主键,则缺省分区键是在该表中定义的第一个非长型字段列。( 长型包括所有长型数据类型和所有大对象(LOB)数据类型)。

如果创建的表所属的表空间位于单分区数据库中,而用户需要使用分区键时,则必须显式定义分区键,否则缺省情况下不创建它。只有在单分区数据库分区组中才允许创建不带分区键的表。以后可以使用 ALTER TABLE 语句添加或删除分区键,但只能对其表空间与单分区数据库分区组相关联的表进行该操作。

好的表分区键就是能将数据均匀分布在数据库分区组中的所有数据库分区上的分区键。因此在定义分区键时,应该考虑下列几点: 

·不支持创建只包含长型数据类型(LONG VARCHAR、LONG VARGRAPHIC、BLOB、CLOB 或 DBCLOB)的多分区表。 
·不能改变分区键定义。 
·分区键应该包括最频繁连接的列。 
·分区键应该由经常参与 GROUP BY 子句的列组成。 
·任何唯一键或主键必须包含所有分区键列。 
·在联机事务处理(OLTP)环境中,分区键中的所有列都应该通过使用带常量或主机变量的等于(=)谓词来参与事务。例如,假定有一个在事务中经常使用的职员号 emp_no,如: 

UPDATE emp_table SET ... WHERE emp_no = host-variable 

在此情况下,EMP_NO 列对于 EMP_TABLE 而言就是一个不错的单列分区键。

应该在创建表时选择创建恰当的分区键,否则一旦数据加载入库,再试图更改分区键,操作上会比较麻烦,其大致过程如下:

对表空间位于单分区数据库分区组的表进行分区键的更改:

1. 使用 ALTER TABLE ... DROP PARTITIONING KEY 的语句,删除现有分区键。
2. 使用 ALTER TABLE ... ADD PARTITIONING KEY 的语句,创建另一个分区键。 

注:只能在单分区数据库分区组中的表上执行上述更改分区键的语句。

对表空间位于多分区数据库分区组的表进行分区键的更改:

在多分区数据库环境下将不能使用 ALTER TABLE 语句更改分区键,不过可采用以下提供的两种方法: 

对不起,您需要登录后才能查看全部详细内容
上一条技术: 网络DoS攻击的排错介绍
下一条技术: 远程为丢失密码的思科网络设备恢复密码


关于我们 法律声明 广告服务 友情链接 联系我们
版权所有:中华服务器网©2001-2008
粤ICP备05008160号 由深圳市七乘二四信息技术有限公司提供技术支持。
 客 服