麻烦看看此SQL能怎么优化

麻烦看看此SQL能如何优化。需求:显示可销天数,7天平均数量,30天平均数量,季度平均数量的显示。问题:此SQL中

麻烦看看此SQL能如何优化。
需求:
显示可销天数,7天平均数量,30天平均数量,季度平均数量的显示。
问题:
此SQL中有张单表数据达到2400W。(需要优化.)
SQL,此SQL还未完结.现在只显示了可销天数,7天销量.剩下的字段还未显示.(但实现的方法和7天比较类似)


SELECT *
  FROM (SELECT A.*, ROWNUM RN
          FROM (select a.mc, a.spm, a.xssl, b.xssl1, a.kcsl
                  from (select tb.name mc, ta.spm, avg(ta.xssl) xssl, ta.kcsl
                          from CC_JXC_GYS_DAY ta,
                               (select * from inf_shop where fgs = 'C') tb
                         where ta.gys = '10035'
                           and ta.mc = tb.code
                           and ta.rq < add_months(sysdate, -1)
                         group by tb.name, ta.spm, ta.kcsl
                         order by kcsl desc) a,
                       (select tb.name mc,
                               ta.spm,
                               avg(ta.xssl) xssl1,
                               ta.kcsl kcsl
                          from CC_JXC_GYS_DAY ta,
                               (select * from inf_shop where fgs = 'C') tb
                         where ta.gys = '10035'
                           and ta.mc = tb.code
                           and to_char(ta.rq, 'yyyy-mm-dd') =
                               to_char(sysdate - 7, 'yyyy-mm-dd')


                         group by tb.name, ta.spm, ta.kcsl
                         order by kcsl desc) b) a
         WHERE ROWNUM <= 1000)
 WHERE RN >= 21




PL/SQL解释计划:

SELECT STATEMENT, GOAL = ALL_ROWS
耗费=5782基数=1000字节=106000
 VIEW对象所有者=ZON100
耗费=5782基数=1000字节=106000
  COUNT STOPKEY
   NESTED LOOPS
耗费=5782基数=1000字节=93000
    VIEW
对象所有者=xx 耗费=197基数=500字节=6500
     SORT GROUP BY
耗费=181231基数=924字节=64680
      HASH JOIN耗费=181230基数=924字节=64680
       TABLE ACCESS FULL
对象所有者=xx 对象名称=INF_SHOP耗费=6基数=173字节=3806
       TABLE ACCESS FULL
对象所有者=xx 对象名称=CC_JXC_GYS_DAY耗费=181223基数=6648字节=319104
    VIEW对象所有者=ZON100
耗费=5585基数=1000字节=80000
     SORT GROUP BY
耗费=181752基数=32543字节=2278010
      HASH JOIN
耗费=181212基数=32543字节=2278010
       TABLE ACCESS FULL
对象所有者=xx 
对象名称=INF_SHOP耗费=6基数=173字节=3806
       TABLE ACCESS FULL
对象所有者=xx 
对象名称=CC_JXC_GYS_DAY耗费=181204基数=234194字节=11241312






寻求您的耐心指点。万分感谢。
[解决办法]
检索数据超过表中数据30%,索引可能会失效
[解决办法]
将相同部分用WITH抽取出来试试,

估计问题最多的是全表扫描的问题,索引没有加对,
如果不知道怎么处理,可以试试用OEM的SQL ADVICER看看怎么建议的