【发布时间】:2011-06-07 09:13:31
【问题描述】:
我需要从一个表和一个视图中获取结果,该视图连接在 2 列上。
查看:800 万条记录 表:5K 记录
我查看了查询计划,发现查询需要很长时间才能运行,实际上尝试运行此查询但没有得到任何结果。
请帮助我优化查询。我没有使用任何提示。
SELECT coupon_upc
, sum ( loyalty_a ) a
, sum ( loyalty_b ) b
, sum ( loyalty_c ) c
, sum ( loyalty_x )
FROM ( SELECT ccd.coupon_upc AS coupon_upc
, ( CASE WHEN a.loyalty_cell = 'A' then 1 else 0 end ) AS loyalty_a
, ( CASE WHEN a.loyalty_cell = 'B' then 1 else 0 end ) AS loyalty_b
, ( CASE WHEN a.loyalty_cell = 'C1' then 1 else 0 end ) AS loyalty_c
, ( CASE WHEN a.loyalty_cell = 'X' then 1 else 0 end ) AS loyalty_x
FROM view1 a
, ( select distinct coupon_upc
, coupon_id
, division
from table2
where schedule_key = 'XXX' ) ccd
WHERE a.campaign_code = 'XXX'
AND a.coupon_id = ccd.coupon_id
AND a.division = ccd.division ) a
GROUP BY coupon_upc
【问题讨论】:
-
提供查询和表/视图 DDL 语句会更容易为您提供帮助。
-
是否可以使用 MVIEW 代替 VIEW 并在其上创建索引?
-
无权这样做!!
-
没有
table2(尤其是view1)定义语句,即使不是不可能,也很难提供帮助。