提高DB2查询性能的常用方法
2010-02-16 14:59:59 来源:WEB开发网核心提示:合理使用子查询减少数据扫描和利用索引某些情况下可以将查询中的某一部分逻辑提取出来作为子查询出现,能够减少扫描的数据量,提高DB2查询性能的常用方法(8),以及利用索引进行数据检索,请看清单16中的查询:清单16.索引:temp.cust_i1 on temp.customer(add_date)temp.order_i
合理使用子查询减少数据扫描和利用索引
某些情况下可以将查询中的某一部分逻辑提取出来作为子查询出现,能够减少扫描的数据量,以及利用索引进行数据检索。请看清单16中的查询:
清单16.
索引:temp.cust_i1 on temp.customer(add_date)
temp.order_i1 on temp.order(sold_to_cust_num)
temp.order_i2 on temp.order(add_date)
查询:
select cust.cust_num
from temp.customer cust
left join temp.order ord
on cust.cust_num = ord.sold_to_cust_num
where cust.add_date > current timestamp - 2 months
or ord.add_date > current timestamp - 2 months
上面的查询用来选择所有两个月内新增加的用户以及在两个月内定购了产品的用户。从图10.a 的查询计划中可看出没有任何索引被使用。
图10.查询计划
更多精彩
赞助商链接