WEB开发网
开发学院数据库DB2 全面解析IBM DB2 9中的查询优化新特性 阅读

全面解析IBM DB2 9中的查询优化新特性

 2008-08-30 16:25:53 来源:WEB开发网   
核心提示: 域值a) 现在看看包含以下数据的两个表的连接 T1.C1 = T2.C1,其中一组数据包含另一组数据:T1.C112345678910T2.C112345678910谓词的选择性定义如下:Selectivity = 1 / ( max ( C1 colcard , C2 colcard )

域值

a) 现在看看包含以下数据的两个表的连接 T1.C1 = T2.C1,其中一组数据包含另一组数据:

T1.C1
1
2
3
4
5
6
7
8
9
10
T2.C1
1
2
3
4
5
6
7
8
9
10

谓词的选择性定义如下:

Selectivity = 1 / ( max ( C1 colcard , C2 colcard ) ) = 0.1

基数为 10 * 10 * 0.1 = 10。

b) 如果表连接 T1.C1 = T2.C1 中的数据在两组数据相交处稍微有所不同,一个表中的数据没有包含另一个表中的数据:

T1.C1
1
2
3
4
5
6
7
8
9
10
T2.C1
1
2
2
2
2
5
12
13
14
15

在这种情况下,T1.C1 的值,例如 7,不能与 T2.C1 连接,而 T2.C1 的值,例如 12,也不能与 T1.C1 连接,但是估计算法并不知道这一点,因而会做出不准确的假设,认为 T1 中的一个值很可能与 T2 中的任意值连接,反之亦然。

基数仍然是 10 * 10 * 0.1 = 10。

所以成本是一样的,但是 a) 的实际行输出结果为 10,b) 的实际行输出结果为 6。

结果
1
2
2
2
2
5

显然,这里存在不一致性,而且,对于更复杂的连接,这种错误估计的问题很可能变得更糟糕。而 V8 FP9 以上版本提供的 DB2 统计视图特性,正是为弥补这一类由于数据分布和值导致的不一致性而设计的。

为了理解统计视图的作用,我们来考虑一个更实际一点的连接场景:

T1.C1 T1.C2
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
10 J
T2.C1
1
2
2
2
2
5
5
13
14
15

上一页  4 5 6 7 8 9 10  下一页

Tags:全面 解析 IBM

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