主Sql语句:
select *
  from (select distinct u.print_s print,
                        u.carstat_Y carstat,
                        u.column_1_Y col,
                        u.frame_Y frame,
                        u.orderNo_S orderNo,
                        u.vehicleNo_S vehicleNo,
                        u.vehicleType_S vehicleType,
                        j.item_s as cjj,
                        c.item_S as css,
                        w.comments_S comments,
                        u.storearea_code_S storearea_code,
                        u.planComments_S planComment,
                        u.vehicleNum_S vehicleNum,
                        u.station_S station,
                        u.firststep_S firststep,
                        u.fourstep_S fourstep,
                        u.nextStep_S nextStep,
                        u.planstate_I planstate,
                        to_Char(u.STARTDATE_T, 'YYYY-MM-DD  HH24:MI:SS') startDate,
                        to_Char(u.SCHEDULEENDTIME_T, 'YYYY-MM-DD') scheduleEndTime,
                        u.comments_S com,
                        u.onlinesyn_i onlinesyn,
                        u.rowId r,
                        u.printdp_s printdp,
                        u.vehicleSequence_I vehicleSequence,
                        b.bomitem bomitem,
                        d.bomitem bom
          from at_zc_unit u,
               at_zc_workorder w,
               (select orderNo_s, item_s
                  from at_zc_css
                 where storearea_code_s = 'CJJ') j,
               (select orderNo_s, item_s
                  from at_zc_css
                 where storearea_code_s = 'CSS') c,               
                 (select bomitem, orderNo
                  from at_zc_bomlist  --此表数据已过千万,其余表约几万
                 where station = 'DLT01T') b,
               (select l.bomitem, l.orderno
                  from at_zc_bomlist l
                 where l.station = 'DLT02T') d                 
         where u.orderNo_s = w.orderNo_s(+)
           and u.orderNo_s = c.orderNo_s(+)
           and u.orderNo_s = j.orderNo_s(+)
           and u.orderNo_s = d.orderNo(+)
           and u.plantype_s = '总装'
           and u.orderNo_s = b.orderNo(+)
           and u.onlinesyn_i is not null
           and u.storearea_code_s = 'E'
           and u.storearea_code_s = w.storearea_code_s(+)
           and u.firststep_s is null
           and u.startDate_t < to_date('2013-04-02', 'YYYY-MM-DD'))
 order by onlinesyn, vehicleSequence asc
 
对以上sql的解析执行计划如下:
SELECT STATEMENT, GOAL = ALL_ROW   Cost=29982 Cardinality=706 Bytes=13741425
 SORT ORDER BY Cost=29982 Cardinality=7065 Bytes=13741425
  VIEW Object owner=ZCMES Cost=29982 Cardinality=706 Bytes=13741425
   HASH UNIQUE Cost=29982 Cardinality=7065 Bytes=4408560
    HASH JOIN RIGHT OUTER Cost=29047 Cardinality=706 Bytes=4408560
     TABLE ACCESS FULL Object owner=ZCMES Object name=AT_ZC_CSS Cost=627 Cardinality=5490 Bytes=164700
     HASH JOIN RIGHT OUTER Cost=28419 Cardinality=696 Bytes=4138398
      TABLE ACCESS FULL Object owner=ZCMES Object name=AT_ZC_WORKORDER Cost=867 Cardinality=7313 Bytes=760552
      HASH JOIN RIGHT OUTER Cost=27551 Cardinality=696 Bytes=3413830
       TABLE ACCESS BY INDEX ROWID Object owner=ZCMES Object name=AT_ZC_BOMLIST Cost=12841 Cardinality=27364 Bytes=793556
        INDEX RANGE SCAN Object owner=ZCMES  Objectname=AT_ZC_BOMLIST_STATION_INDEX Cost=81 Cardinality=27364
       HASH JOIN RIGHT OUTER Cost=14557 Cardinality=437 Bytes=2015492
        TABLE ACCESS BY INDEX ROWID Object owner=ZCMES Object name=AT_ZC_BOMLIST Cost=12841 Cardinality=27364 Bytes=793556
         INDEX RANGE SCAN Object owner=ZCMES Object name=AT_ZC_BOMLIST_STATION_INDEX Cost=81 Cardinality=27364
        HASH JOIN OUTER Cost=1604 Cardinality=274 Bytes=1184976
         TABLE ACCESS BY INDEX ROWID Object owner=ZCMES Object name=AT_ZC_UNIT Cost=975 Cardinality=2429 Bytes=976458
          INDEX RANGE SCAN Object owner=ZCMES Object name=AT_ZC_UNIT_STOREAREA_CODE Cost=20 Cardinality=9699
         TABLE ACCESS FULL Object owner=ZCMES Object name=AT_ZC_CSS Cost=627 Cardinality=32839 Bytes=985170主sql查询较慢,十几条数据半分钟左右,但是单独拿出子sql查询都很快。
在线求解!oraclesqltable

解决方案 »

  1.   

    oracle菜鸟,不理解这个统计分析怎么做,能得出什么信息?还请详解
      

  2.   

    好像是变成全表关联了。试一下用/*+no_megre*/这个hint.
      ,(select /*+no_megre*/ orderNo_s, item_s
                      from at_zc_css
                     where storearea_code_s = 'CJJ') j
                  ,(select /*+no_megre*/ orderNo_s, item_s
                      from at_zc_css
                     where storearea_code_s = 'CSS') c
                  ,(select /*+no_megre*/ bomitem, orderNo
                      from at_zc_bomlist --此表数据已过千万,其余表约几万
                     where station = 'DLT01T') b
                  ,(select /*+no_megre*/ l.bomitem, l.orderno
                      from at_zc_bomlist l
                     where l.station = 'DLT02T') d