如何在Oracle中改善大查询

问题描述

我有2个数据集市,其中包含约50列的2011年数据,首先是每天插入和更新的所有贷款状态,然后是每天插入和更新的所有客户状态(每天2 * 10 ^ 6rows)。我准备一个数据集并过滤不必要的行(产品信息) 它需要1200分钟的解释计划,当我运行12-15小时并且想要对其进行优化时(一天在集市中,将有数十亿行并且我的查询无效),是否可以通过物化视图来改善查询?如果是,怎么写?只需创建垫视图,然后从dmart 1中选择需要的列?

我这样的查询

with bla_1 as (
select some columns from dmart1 d1 join dmart2 d2 on d1.id_deal=d2.id_deal
),bla_2 as(
some improving query from bla_1
)

select 
max(case when add_months(d1.deal_dt_open,3) = d1.dt(/*date when all info inserted in data mart*/) and bla2.overdu_day>=30 then 1 else 0 ) mob_30_3

max(case when add_months(d1.deal_dt_open,6) = d1.dt(/*date when all info inserted in data mart*/) and bla2.overdu_day>=30 then 1 else 0 ) mob_30_6

......


max(case when add_months(d1.deal_dt_open,18) = d1.dt(/*date when all info inserted in data mart*/) and bla2.overdu_day>=90 then 1 else 0 ) mob_90_18

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)