WEB开发网
开发学院数据库DB2 在 DB2 Database Partitioning Feature 环境中选择... 阅读

在 DB2 Database Partitioning Feature 环境中选择分区键

 2010-09-09 00:00:00 来源:WEB开发网   
核心提示: 创建数据库分区组内的表空间,在此表空间内创建的所有对象都将跨在数据库分区组定义内指定的这些数据库分区:CREATETABLESPACEtbsp1INpdpg1...在表空间内创建表,在 DB2 Database Partitioning Feature 环境中选择分区键(2),至此,此表的定义与

创建数据库分区组内的表空间。在此表空间内创建的所有对象都将跨在数据库分区组定义内指定的这些数据库分区:

CREATE TABLESPACE tbsp1 IN pdpg1 ...

在表空间内创建表。至此,此表的定义与数据库分区组的定义相关联。更改此关系的惟一方式是丢弃此表并在与不同的数据库分区组相关联的一个不同的表空间内重新创建它。

在如下的例子中,Table1 创建于数据库分区 1、2、3 和 4 并且会基于列 COL1 上的一个分区键重新分配:

CREATE TABLE table1(col1 INTEGER NOT NULL, col2 SMALLINT NOT NULL, col3 CHAR(10), 
 PRIMARY KEY (col1,col2) ) IN tbsp1 
   DISTRIBUTE BY HASH (col1) 

请记住,数据库分区组定义可以更改。比如,可以添加新的数据库分区。如果发生更改,那么在此次更改之前定义的哈希分区表将不会使用这个新的分区,直到此数据库分区组被 REDISTRIBUTE DATABASE PARTITION GROUP 命令重新分配。

定义分区键

分区键由 CREATE TABLE 命令内的 DISTRIBUTED BY HASH 子句定义。分区键定义后,就不能更改。更改它的惟一办法是重新创建此表。

如下的规则和建议适用于分区键定义:

表的主键和所有惟一索引都必须是相关分区键的超集。换句话说,作为分区键一部分的所有列都必须出现在主键或惟一索引定义中。列的顺序可任意。

一个分区键应该包括一至三个列。通常列越少越好。

整型分区键要比字符键高效,而字符键又比小数键高效。

如果在 CREATE TABLE 命令内没有显式地提供分区键,那么就会使用如下的这些默认值:

如果在 CREATE TABLE 语句中指定了一个主键,那么主键的首列会被用作分配键。

上一页  1 2 3 4 5 6 7  下一页

Tags:DB Database Partitioning

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接