WEB开发网
开发学院数据库DB2 提高DB2查询性能的常用方法 阅读

提高DB2查询性能的常用方法

 2010-02-16 14:59:59 来源:WEB开发网   
核心提示:清单18中的查询用来选择出所有最近一个月内修改过联系人信息的客户的订单信息,此查询会按照链接的顺序先将temp.customer表和 temp.order表进行LEFT JOIN,提高DB2查询性能的常用方法(9),然后使用结果集去 JOIN temp.contact表,由于该查询使用了LEFT JOIN,在19 的查

清单18中的查询用来选择出所有最近一个月内修改过联系人信息的客户的订单信息。此查询会按照链接的顺序先将temp.customer表和 temp.order表进行LEFT JOIN,然后使用结果集去 JOIN temp.contact表。由于该查询使用了LEFT JOIN,因此在生成中间结果集的时候不会有任何记录会被过滤掉,中间结果集的记录数目大于等于 temp.customer表。了解到了DB2是如何解释和执行这样的查询后,很自然的我们就会想到将JOIN提前。请看清单19。

清单19.

查询:
select cust.cust_name, ord.order_num, cnt.cnt_first_name
from temp.customer cust
join temp.contact cnt
on cust.cust_num = cnt.cust_num
left join temp.order ord
on cust.cust_num = ord.sold_to_cust_num
where cnt.mod_date > current timestamp - 1 months

图11.a 和图11.b 分别为清单18和19 的查询的存取计划。在19 的查询中,在形成中间结果集的时候也应用到了WHERE 语句中的条件,而不是在所有 JOIN 都结束以后才被应用去除记录的。

图11.查询计划

上一页  4 5 6 7 8 9 

Tags:提高 DB 查询

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