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

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

 2010-09-09 00:00:00 来源:WEB开发网   
核心提示: 图 1. 包含了 TQUEUE 操作符的解释图为了检查表内的数据是否跨数据库分区进行了适当的均衡,可以借助 DBPARTITIONNUM 函数在按此数据库分区 ID 分组的表上运行一个简单的计数,在 DB2 Database Partitioning Feature 环境中选择分区键(5), 也

图 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 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:DB Database Partitioning

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