结果都差不多 这么少。那么最终确定方案出来了。
1、创建索引,从Distinct那条语句可以看出,week 选择率最好(过滤的最多)
create index T_HAHA_test on storebasepricesum(week,year,clevel) parallel 8;
alter index T_HAHA_test parallel 1;
再次执行语句
select count(*) from (
select /*+ index(tt T_HAHA_TEST) */
.
.
.
.
from V_HAHA tt
where tt.year = 2013
AND (tt.week in(38) OR 38 is null)
AND (tt.storeid = null OR null is null)
AND (tt.standardid = null OR null is null)
AND (tt.code in (null) OR null is null)
AND (tt.division_no = null OR null is null)
AND (tt.section_no = null OR null is null)
AND (tt.grp_no = null OR null is null)
AND (tt.subgrp_no = null OR null is null)
AND (tt.subgrp2_no = null OR null is null)
AND (tt.clevel = 'store' OR 'store' is null)
);
COUNT(*)
----------
334 Elapsed: 00:00:00.01
0.01秒出结果,之前是5分多,速度提升了多少呢,来我算一算 哈哈哈哈哈哈~
优化虽易,乙方不易 ,且行且特么珍惜。