需要在DB2中使用group by on时间戳优化慢速查询



需求:按年度和省划分的计费记录个数。

Database: DB2 9.5

下面是用来获取详细信息的查询,它花费了大量的时间,超过1个小时,并且超时。

每个表的记录数如下:账单:900万封面:100万顾客:300万地址:400万

select year(bill.created), addr.province,count(1) as yearprovicecount  from billing bill 
inner join cover cov  on ( bill.coveragecid = cov.coveragecid) 
inner join customer cust on (cust.customercid= cov.customercid)
inner join address addr on (cust.customercid=addr.customercid)
group by year(bill.created), addr.province;

创建的是一个时间戳列。

由于查询中没有where子句,查询变得很慢。请让我知道,如果有任何方法,我可以优化查询。

谢谢大家,

我现在可以提取报告,谢谢你的建议。

1。我删除了不需要的连接

2。我添加了where子句来限制扫描的行数

select year(bill.created), addr.province,count(1) as yearprovicecount  from billing bill 
inner join cover cov  on ( bill.coveragecid = cov.coveragecid) 
-- inner join customer cust on (cust.customercid= cov.customercid)
inner join address addr on (cust.customercid=addr.customercid)
where year(billhis.created) = 2014
group by year(bill.created), addr.province;

注意:当前版本的DB 9.5不支持解释计划,因此不能提供。

相关内容

  • 没有找到相关文章

最新更新