一条简单的语句里加了个join 为什么就慢了几十秒?
select a.key_xil,
sum(amount) as amount
from fact_m_xiaos_sum a
join dm_shop_bak s on s.key_shop=a.key_shop
where 1=1 and iodate>=to_date('2013-06-01','yyyy-mm-dd') and iodate<=to_date('2013-10-31','yyyy-mm-dd')
and a.key_nianf=12 and a.key_jij=5
group by a.key_xil
不加join dm_shop_bak s on s.key_shop=a.key_shop, 0.2秒, 加了就90多秒,
fact_m_xiaos_sum是销售表, 80万行数据, key_shop是索引,
dm_shop_bak是店铺表, 600行数据, key_shop是关键字段,
这条语句在SQL2005里执行是0.2秒
这是执行计划:
------解决方案--------------------没有实际环境测试,你把dm_shop_bak放在前面试试。