全面解析IBM DB2 9中的查询优化新特性
2008-08-30 16:25:53 来源:WEB开发网P.P_SIZE, P.P_TYPE, S.S_NATION
FROM KCHEN.PARTS P, KCHEN.SUPPLIERS S, KCHEN.PARTSUPP PS
WHERE P_PARTKEY = PS.PS_PARTKEY AND
S.S_SUPPKEY = PS.PS_SUPPKEY AND
P.P_TYPE IN ('BRASS', 'BRONZE') AND
P.P_SIZE IN (31, 31, 33, 34) AND
S.S_NATION = 'PERU']]>
例子6: 子查询改为连接(查询重写)
在这个例子中,在查询重写期间,通过使用带 ENABLE 属性的 SUBQ2JOIN,将一个子查询转换成一个连接,以便更好地对其进行优化。
FROM KCHEN.PARTSUPP PS, KCHEN.LINEITEM
WHERE PS.PS_PARTKEY = L_PARTKEY AND
PS.PS_PARTKEY = ANY (
SELECT P_PARTKEY FROM KCHEN.PARTS
WHERE P_BRAND <> 'Brand#45' AND
P_NAME = 'peach snow puff bisque misty' AND
P_TYPE <> 'TIN')
GROUP BY PS_PARTKEY]]>
例子7: 影响连接顺序 3、4、1、2 (计划优化)
通常,查询的连接顺序很大程度上决定了查询的执行性能,因为越早地过滤行,效率越高。可以使用以下指南来影响连接顺序。注意,当出现多个表引用时,使用 TABLEID 属性,而不是 TABID 属性。
where t71.c1 = t72.c1 and
t72.c2 = t74.c2 and
t74.c1 = t73.c1 and
t73.c2 = t71.c2 and
t71.c3 = t74.c3 and
t72.c3 = t73.c3]]>
例子8: 客户使用情况(计划优化)
在批处理运行过程中,当刷新一个 MQT 时,客户会遇到性能问题。当为 MQT 定义中涉及的表 tab2 填充数据时,就会触发对 MQT 的刷新。下面的例子代码可以演示这个问题。
更多精彩
赞助商链接