在 DB2 Database Partitioning Feature 环境中选择分区键
2010-09-09 00:00:00 来源:WEB开发网图 1. 包含了 TQUEUE 操作符的解释图
为了检查表内的数据是否跨数据库分区进行了适当的均衡,可以借助 DBPARTITIONNUM 函数在按此数据库分区 ID 分组的表上运行一个简单的计数。
也可以使用定制存储过程 ESTIMATE_EXISTING_DATA_SKEW 例程(在 下载 部分可以找到),它提供了更为用户友好的输出,其中包括一个数据库分区列表、相对于平均值的倾斜百分比等。这个例程可以在原始数据的样本上运行以获得更快速的性能。(参见 附录 获得完整的例程描述。)
若计划在一个生产环境内运行此例程,可以考虑在维护窗口期间或是当系统处于轻负载的情况下运行它。为了估算此例程需要花费多久才能返回结果,不妨在一个较小的表上用示例值 1% 尝试此例程。
示例 1
这个示例测试的是分区键被更改为 S_NATIONKEY 的场景中的数据倾斜。这个示例只使用了样本中 25% 的数据。 正如从结果中看到的,数据大量倾斜,某些数据库分区内的数据量居然有 60% 的倾斜。
清单 2. 测量单个表的现有数据倾斜
$ db2 "set serveroutput on"
$ db2 "CALL estimate_existing_data_skew('TPCD', 'SUPPLIER', 25)"
CALL estimate_existing_data_skew('TPCD', 'SUPPLIER', 25)
Return Status = 0
DATA SKEW ESTIMATION REPORT FOR TABLE: TPCD.SUPPLIER
Accuracy is based on 25% sample of data
------------------------------------------------------------------------
TPCD.SUPPLIER
Estimated total number of records in the table: : 19,994,960
Estimated average number of records per partition : 2,499,368
Row count at partition 1 : 1,599,376 (Skew: -36.00%)
Row count at partition 2 : 2,402,472 (Skew: 3.87%)
Row count at partition 3 : 4,001,716 (Skew: 60.10%)
Row count at partition 4 : 2,394,468 (Skew: -4.19%)
Row count at partition 5 : 1,600,028 (Skew: -35.98%)
Row count at partition 6 : 1,599,296 (Skew: -36.01%)
Row count at partition 7 : 2,397,116 (Skew: -4.09%)
Row count at partition 8 : 4,000,488 (Skew: 60.05%)
Number of partitions: 8 (1, 2, 3, 4, 5, 6, 7, 8)
------------------------------------------------------------------------
Total execution time: 20 seconds
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 实战
更多精彩
赞助商链接