在 DB2 Database Partitioning Feature 环境中选择分区键
2010-09-09 00:00:00 来源:WEB开发网如果没有主键,就会使用非长型字段的首列。
为何选择正确的分区键如此重要
选择正确的分区键之所以如此关键,有两方面的原因:
它改善了使用哈希分区的那些查询的性能
它平衡了所有分区的存储需求
数据平衡
数据平衡指的是存储在各个数据库分区的记录的相对数量。理想情况下,一个哈希分区表内的每个数据库分区都应具有相同数量的记录。如果各数据库分区存储的记录数不均,就会导致不均衡的存储需求和性能问题。之所以会出现性能问题是因为查询均独立在每个数据库分区完成,但是查询的结果则要由协调代理进行整合,而该代理必须等所有数据库分区均返回结果集后才开始整合。换言之,整体的性能受制于最慢的数据库分区的性能。
表数据倾斜 指的是特定的一些数据库分区上的某个表内的记录数与这个表所跨的所有数据库分区的平均记录数之间的差额。所以,对于本例,如果某个表在数据库分区 1 上的表数据倾斜是 60%, 那么这意味着此数据库分区包含的该表的行要比平均的数据库分区多出 60%。
从最佳实践的角度来看,各个数据库分区上的表数据倾斜应该不多于 10%。为了实现此目标,分区键应该在具有较高基数(换言之,即包含大量不同值)的列上选择。
如果表的统计信息是最新的,那么就可以通过如下语句快速检查现有表内列的基数:
清单 1. 检查现有表内列的基数
SELECT colname, colcard FROM syscat.columns
WHERE tabname='CUSTOMER' AND tabschema = 'BCULINUX' ORDER BY colno
COLNAME COLCARD
------------------------------------------------------------------------ ---------------
C_CUSTOMER_SK 100272
C_CUSTOMER_ID 25068
C_CURRENT_CDEMO_SK 25068
C_CURRENT_HDEMO_SK 6912
C_CURRENT_ADDR_SK 19456
C_FIRST_SHIPTO_DATE_SK 3651
C_FIRST_SALES_DATE_SK 3584
... [remainder of the output omitted from this example]
Tags:DB Database Partitioning
编辑录入:爽爽 [复制链接] [打 印]- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接