2013-08-19 127 views
0

我已经创建了一个查询,通常需要7到11秒才能返回一个集合,我希望这样做更快。我明白,如果索引发生,我必须使用索引,以便正确使用它们。不幸的是,它会发出相同的执行时间:这里是我使用查询:优化Oracle查询

WITH trackin8080 AS 
(
    SELECT DISTINCT 
    c.containerid 
    , c.containername 
    , hml.historyid 
    , hml.wiptrackinggroupkeyid 
    , hml.qty 
    , hml.txndate 
    FROM CONTAINER c 
    JOIN 
    (
    SELECT 
     MAX(wwl.wiptrackinggroupkeyid) OVER (PARTITION BY wwl.containerid) wiptrackiggroupkeyid 
     , wwl.containerid 
    FROM 
    (
     SELECT 
     wl.wiptrackinggroupkeyid 
     , wl.containerid 
     FROM a_wiplot wl 
     WHERE wl.specname IN ('8080_STAB_BAKE_1_FT') 
     AND wl.workflowname IN ('6_2B2R-DP_WIP') AND wl.containername LIKE :lotid AND wl.containername NOT LIKE '%TEST%' 

     UNION ALL 

     SELECT 
     wl.wiptrackinggroupkeyid 
     , wl.containerid 
     FROM a_wiplothistory wl 
     WHERE wl.specname IN ('8080_STAB_BAKE_1_FT') 
     AND wl.workflowname IN ('6_2B2R-DP_WIP') AND wl.containername LIKE :lotid AND wl.containername NOT LIKE '%TEST%' 
    )wwl 
    GROUP BY wwl.containerid, wwl.wiptrackinggroupkeyid 
)wl ON c.containerid = wl.containerid 
    JOIN historymainline hml ON c.containerid = hml.historyid AND hml.cdoname = 'TrackInLot' AND hml.specname IN ('8080_STAB_BAKE_1_FT') AND wl.wiptrackiggroupkeyid = hml.wiptrackinggroupkeyid --AND hml.txndate > TRUNC(SYSDATE - 7) 
    WHERE hml.workflowname IN ('6_2B2R-DP_WIP') AND c.containername LIKE :lotid 
), trackout8080 AS 
(
    SELECT DISTINCT 
    c.containerid 
    , c.containername 
    , hml.historyid 
    , hml.historymainlineid 
    , hml.txndate 
    , hml.qty 
    FROM trackin8080 ti 
    INNER JOIN container c ON ti.containerid = c.containerid 
    INNER JOIN product p ON c.productid = p.productid 
    INNER JOIN historymainline hml ON c.containerid = hml.historyid AND hml.cdoname = 'TrackOutLot' AND hml.specname IN ('8080_STAB_BAKE_1_FT') 
    WHERE hml.workflowname IN ('6_2B2R-DP_WIP') AND c.containername LIKE :lotid 
), movein8527 AS 
(
    SELECT DISTINCT 
    c.containerid 
    , c.containername 
    , hml.historyid 
    , hml.historymainlineid 
    , hml.txndate 
    , hml.shiftname 
    , hml.employeeid 
    , hml.qty 
    , p.device 
    , p.brandname 
    , hml.specname 
    , hml.comments 
    FROM trackin8080 ti 
    INNER JOIN container c ON ti.containerid = c.containerid 
    INNER JOIN product p ON c.productid = p.productid 
    INNER JOIN historymainline hml ON c.containerid = hml.historyid 
    WHERE (hml.callbycdoname IN ('TestWIPMain', 'TestWIPMoveNonStd') AND hml.cdoname = 'MoveInLot' AND hml.specname IN ('8527_STAGE_BAKE_FT')) 
    AND hml.workflowname IN ('6_2B2R-DP_WIP') AND c.containername LIKE :lotid 
), moveout8925 AS 
(
    SELECT DISTINCT 
    c.containerid 
    , c.containername 
    , hml.historyid 
    , hml.historymainlineid 
    , hml.txndate 
    , hml.shiftname 
    , hml.employeeid 
    , hml.qty 
    , p.device 
    , p.brandname 
    , hml.specname 
    , hml.comments 
    FROM trackin8080 ti 
    INNER JOIN container c ON ti.containerid = c.containerid 
    INNER JOIN product p ON c.productid = p.productid 
    INNER JOIN 
    (
    SELECT 
     MAX(wwl.wiptrackinggroupkeyid) OVER (PARTITION BY wwl.containerid) wiptrackiggroupkeyid 
     , wwl.containerid 
    FROM 
    (
     SELECT 
     wl.wiptrackinggroupkeyid 
     , wl.containerid 
     FROM a_wiplot wl 
     WHERE wl.specname IN ('8925_2ND_RM_TST_SOT_2_FT') 
     AND wl.workflowname IN ('6_2B2R-DP_WIP') AND wl.containername LIKE :lotid AND wl.containername NOT LIKE '%TEST%' 

     UNION ALL 

     SELECT 
     wl.wiptrackinggroupkeyid 
     , wl.containerid 
     FROM a_wiplothistory wl 
     WHERE wl.specname IN ('8925_2ND_RM_TST_SOT_2_FT') 
     AND wl.workflowname IN ('6_2B2R-DP_WIP') AND wl.containername LIKE :lotid AND wl.containername NOT LIKE '%TEST%' 
    )wwl 
    GROUP BY wwl.containerid, wwl.wiptrackinggroupkeyid 
)wl ON c.containerid = wl.containerid 
    INNER JOIN historymainline hml ON c.containerid = hml.historyid AND wl.wiptrackiggroupkeyid = hml.wiptrackinggroupkeyid 
    WHERE (hml.callbycdoname IN ('LotMoveOut', 'MoveLot', 'TestWIPMoveNonStd') AND hml.cdoname = 'CreateFirstInsertion' AND hml.specname IN ('8925_2ND_RM_TST_SOT_2_FT')) 
    AND hml.workflowname IN ('6_2B2R-DP_WIP') AND c.containername LIKE :lotid 
), trackin8090 AS 
(
    SELECT DISTINCT 
    c.containerid 
    , c.containername 
    , hml.historyid 
    , hml.wiptrackinggroupkeyid 
    , hml.qty 
    , hml.txndate 
    FROM CONTAINER c 
    JOIN 
    (
    SELECT 
     MAX(wwl.wiptrackinggroupkeyid) OVER (PARTITION BY wwl.containerid) wiptrackiggroupkeyid 
     , wwl.containerid 
    FROM 
    (
     SELECT 
     wl.wiptrackinggroupkeyid 
     , wl.containerid 
     FROM a_wiplot wl 
     WHERE wl.specname IN ('8090_2ND_BAKE_IN_OVEN_SOT_FT') 
     AND wl.workflowname IN ('6_2B2R-DP_WIP') AND wl.containername LIKE :lotid AND wl.containername NOT LIKE '%TEST%' 

     UNION ALL 

     SELECT 
     wl.wiptrackinggroupkeyid 
     , wl.containerid 
     FROM a_wiplothistory wl 
     WHERE wl.specname IN ('8090_2ND_BAKE_IN_OVEN_SOT_FT') 
     AND wl.workflowname IN ('6_2B2R-DP_WIP') AND wl.containername LIKE :lotid AND wl.containername NOT LIKE '%TEST%' 
    )wwl 
    GROUP BY wwl.containerid, wwl.wiptrackinggroupkeyid 
)wl ON c.containerid = wl.containerid 
    JOIN historymainline hml ON c.containerid = hml.historyid AND hml.cdoname = 'TrackInLot' AND hml.specname IN ('8090_2ND_BAKE_IN_OVEN_SOT_FT') AND wl.wiptrackiggroupkeyid = hml.wiptrackinggroupkeyid --AND hml.txndate > TRUNC(SYSDATE - 7) 
    WHERE hml.workflowname IN ('6_2B2R-DP_WIP') AND c.containername LIKE :lotid 
), trackout8090 AS 
(
    SELECT DISTINCT 
    c.containerid 
    , c.containername 
    , hml.historyid 
    , hml.historymainlineid 
    , hml.txndate 
    , hml.qty 
    FROM trackin8080 ti 
    INNER JOIN container c ON ti.containerid = c.containerid 
    INNER JOIN product p ON c.productid = p.productid 
    INNER JOIN historymainline hml ON c.containerid = hml.historyid AND hml.cdoname = 'TrackOutLot' AND hml.specname IN ('8090_2ND_BAKE_IN_OVEN_SOT_FT') 
    WHERE hml.workflowname IN ('6_2B2R-DP_WIP') AND c.containername LIKE :lotid 
) 

SELECT 
    ti8080.containername 
    , ti8080.qty qtyatb1 
    , to_char(ti8080.txndate, 'MM/DD/YYYY HH:MI:SS PM') trackindateb1 
    , to_char(ti8080.txndate + 12/24, 'MM/DD/YYYY HH:MI:SS PM') FCSTDOvenOutB1 
    , NVL(to_char(to8080.txndate, 'MM/DD/YYYY HH:MI:SS PM'), '-') trackoutdateb1 
    , CASE WHEN to8080.txndate IS NULL THEN 
     '-' 
    ELSE 
     to_char(ROUND((to8080.txndate - ti8080.txndate) * 24, 4)) 
    END AS elapsedtimebake1 
    , NVL(to_char(mi8527.qty), '-') qtyatstaging 
    , NVL(to_char(mi8527.txndate, 'MM/DD/YYYY HH:MI:SS PM'), '-') moveinto8527 
    , NVL(to_char(mi8527.txndate + 24/24, 'MM/DD/YYYY HH:MI:SS PM'), '-') FCSTDEndDate 
    , NVL(to_char(mo8925.txndate, 'MM/DD/YYYY HH:MI:SS PM'), '-') moveoutto8925 
    , CASE WHEN mo8925.txndate IS NULL THEN 
     '-' 
    ELSE 
     to_char(ROUND((mo8925.txndate - mi8527.txndate) * 24, 4)) 
    END AS elapsedtimestage 
    , NVL(to_char(ti8090.qty), '-') qtyatb2 
    , NVL(to_char(ti8090.txndate, 'MM/DD/YYYY HH:MI:SS PM'), '-') trackindateb2 
    , CASE WHEN ti8090.txndate IS NULL THEN 
     '-' 
    ELSE 
     to_char(ti8090.txndate + 24/24, 'MM/DD/YYYY HH:MI:SS PM') 
    END AS FCSTDOvenOutB2 
    , NVL(to_char(to8090.txndate, 'MM/DD/YYYY HH:MI:SS PM'), '-') trackoutdateb2 
    , CASE WHEN to8090.txndate IS NULL THEN 
     '-' 
    ELSE 
     to_char(ROUND((to8090.txndate - ti8090.txndate) * 24, 4)) 
    END AS elapsedtimebake2 
FROM trackin8080 ti8080 
LEFT JOIN trackout8080 to8080 ON ti8080.containerid = to8080.containerid AND to8080.txndate >= ti8080.txndate 
LEFT JOIN movein8527 mi8527 ON ti8080.containerid = mi8527.containerid AND mi8527.txndate >= to8080.txndate 
LEFT JOIN moveout8925 mo8925 ON ti8080.containerid = mo8925.containerid AND mo8925.txndate >= mi8527.txndate 
LEFT JOIN trackin8090 ti8090 ON ti8080.containerid = ti8090.containerid AND ti8090.txndate >= mi8527.txndate 
LEFT JOIN trackout8090 to8090 ON ti8080.containerid = to8090.containerid AND to8090.txndate >= ti8090.txndate 
WHERE ti8080.containername LIKE :lotid AND ti8080.containername NOT LIKE '%TEST%' AND trunc(ti8080.txndate) > TRUNC(SYSDATE-7) 
ORDER BY ti8080.containername 

并解释计划:

| Id | Operation         | Name      | Rows | Bytes | Cost (%CPU)| Time  | 
--------------------------------------------------------------------------------------------------------------------------- 
| 0 | SELECT STATEMENT       |        |  1 | 149 | 51140 (1)| 00:10:14 | 
| 1 | TEMP TABLE TRANSFORMATION     |        |  |  |   |   | 
| 2 | LOAD AS SELECT       | SYS_TEMP_0FD9DE946_81931B5A |  |  |   |   | 
| 3 | HASH UNIQUE        |        |  1 | 98 | 17000 (1)| 00:03:25 | 
| 4 |  VIEW         |        |  1 | 98 | 16999 (1)| 00:03:24 | 
| 5 |  NESTED LOOPS       |        |  |  |   |   | 
| 6 |  NESTED LOOPS       |        |  1 | 119 | 16999 (1)| 00:03:24 | 
| 7 |  VIEW         |        |  1 | 47 | 16964 (1)| 00:03:24 | 
| 8 |   NESTED LOOPS      |        |  |  |   |   | 
| 9 |   NESTED LOOPS      |        |  1 | 64 | 16964 (1)| 00:03:24 | 
| 10 |   VIEW        |        |  1 | 35 | 16962 (1)| 00:03:24 | 
| 11 |   WINDOW BUFFER     |        |  1 | 34 | 16962 (1)| 00:03:24 | 
| 12 |    SORT GROUP BY     |        |  1 | 34 | 16962 (1)| 00:03:24 | 
| 13 |    VIEW       |        |  2 | 68 | 16961 (1)| 00:03:24 | 
| 14 |    UNION-ALL      |        |  |  |   |   | 
|* 15 |    TABLE ACCESS FULL   | A_WIPLOT     |  1 | 87 | 274 (1)| 00:00:04 | 
|* 16 |    TABLE ACCESS FULL   | A_WIPLOTHISTORY    |  1 | 81 | 16688 (1)| 00:03:21 | 
|* 17 |   INDEX UNIQUE SCAN     | CONTAINER450    |  1 |  |  1 (0)| 00:00:01 | 
|* 18 |   TABLE ACCESS BY INDEX ROWID  | CONTAINER     |  1 | 29 |  2 (0)| 00:00:01 | 
|* 19 |  INDEX RANGE SCAN      | HISTORYMAINLINE2   | 46 |  |  3 (0)| 00:00:01 | 
|* 20 |  TABLE ACCESS BY INDEX ROWID   | HISTORYMAINLINE    |  1 | 72 | 36 (0)| 00:00:01 | 
| 21 | SORT ORDER BY        |        |  1 | 149 | 34140 (1)| 00:06:50 | 
|* 22 | HASH JOIN OUTER       |        |  1 | 149 | 34139 (1)| 00:06:50 | 
| 23 |  VIEW         |        |  1 | 123 | 34096 (1)| 00:06:50 | 
|* 24 |  HASH JOIN OUTER      |        |  1 | 160 | 34096 (1)| 00:06:50 | 
|* 25 |  HASH JOIN OUTER      |        |  1 | 120 | 17094 (1)| 00:03:26 | 
| 26 |  VIEW         |        |  1 | 93 | 88 (4)| 00:00:02 | 
|* 27 |   HASH JOIN OUTER      |        |  1 | 111 | 88 (4)| 00:00:02 | 
| 28 |   VIEW        |        |  1 | 71 | 45 (5)| 00:00:01 | 
|* 29 |   HASH JOIN OUTER     |        |  1 | 89 | 45 (5)| 00:00:01 | 
|* 30 |   VIEW        |        |  1 | 62 |  2 (0)| 00:00:01 | 
| 31 |    TABLE ACCESS FULL    | SYS_TEMP_0FD9DE946_81931B5A |  1 | 66 |  2 (0)| 00:00:01 | 
| 32 |   VIEW        |        |  1 | 27 | 42 (3)| 00:00:01 | 
| 33 |    HASH UNIQUE      |        |  1 | 161 | 42 (3)| 00:00:01 | 
| 34 |    NESTED LOOPS     |        |  |  |   |   | 
| 35 |    NESTED LOOPS     |        |  1 | 161 | 41 (0)| 00:00:01 | 
| 36 |    NESTED LOOPS     |        |  1 | 80 |  5 (0)| 00:00:01 | 
| 37 |     NESTED LOOPS    |        |  1 | 63 |  4 (0)| 00:00:01 | 
| 38 |     VIEW      |        |  1 | 17 |  2 (0)| 00:00:01 | 
| 39 |     TABLE ACCESS FULL   | SYS_TEMP_0FD9DE946_81931B5A |  1 | 66 |  2 (0)| 00:00:01 | 
|* 40 |     TABLE ACCESS BY INDEX ROWID| CONTAINER     |  1 | 46 |  2 (0)| 00:00:01 | 
|* 41 |     INDEX UNIQUE SCAN   | CONTAINER450    |  1 |  |  1 (0)| 00:00:01 | 
|* 42 |     INDEX UNIQUE SCAN   | PRODUCT502     |  1 | 17 |  1 (0)| 00:00:01 | 
|* 43 |    INDEX RANGE SCAN    | HISTORYMAINLINE2   | 46 |  |  3 (0)| 00:00:01 | 
|* 44 |    TABLE ACCESS BY INDEX ROWID | HISTORYMAINLINE    |  1 | 81 | 36 (0)| 00:00:01 | 
| 45 |   VIEW        |        |  1 | 40 | 43 (3)| 00:00:01 | 
| 46 |   HASH UNIQUE      |        |  1 | 228 | 43 (3)| 00:00:01 | 
| 47 |   NESTED LOOPS      |        |  |  |   |   | 
| 48 |    NESTED LOOPS     |        |  1 | 228 | 42 (0)| 00:00:01 | 
| 49 |    NESTED LOOPS     |        |  1 | 99 |  6 (0)| 00:00:01 | 
| 50 |    NESTED LOOPS     |        |  1 | 63 |  4 (0)| 00:00:01 | 
| 51 |    VIEW       |        |  1 | 17 |  2 (0)| 00:00:01 | 
| 52 |     TABLE ACCESS FULL   | SYS_TEMP_0FD9DE946_81931B5A |  1 | 66 |  2 (0)| 00:00:01 | 
|* 53 |    TABLE ACCESS BY INDEX ROWID | CONTAINER     |  1 | 46 |  2 (0)| 00:00:01 | 
|* 54 |     INDEX UNIQUE SCAN   | CONTAINER450    |  1 |  |  1 (0)| 00:00:01 | 
| 55 |    TABLE ACCESS BY INDEX ROWID | PRODUCT      |  1 | 36 |  2 (0)| 00:00:01 | 
|* 56 |    INDEX UNIQUE SCAN   | PRODUCT502     |  1 |  |  1 (0)| 00:00:01 | 
|* 57 |    INDEX RANGE SCAN    | HISTORYMAINLINE2   | 46 |  |  3 (0)| 00:00:01 | 
|* 58 |    TABLE ACCESS BY INDEX ROWID  | HISTORYMAINLINE    |  1 | 129 | 36 (0)| 00:00:01 | 
| 59 |  VIEW         |        |  1 | 27 | 17006 (1)| 00:03:25 | 
| 60 |   HASH UNIQUE       |        |  1 | 271 | 17006 (1)| 00:03:25 | 
|* 61 |   HASH JOIN       |        |  1 | 271 | 17005 (1)| 00:03:25 | 
| 62 |   NESTED LOOPS      |        |  |  |   |   | 
| 63 |   NESTED LOOPS      |        |  1 | 236 | 42 (0)| 00:00:01 | 
| 64 |    NESTED LOOPS     |        |  1 | 99 |  6 (0)| 00:00:01 | 
| 65 |    NESTED LOOPS     |        |  1 | 63 |  4 (0)| 00:00:01 | 
| 66 |    VIEW       |        |  1 | 17 |  2 (0)| 00:00:01 | 
| 67 |    TABLE ACCESS FULL   | SYS_TEMP_0FD9DE946_81931B5A |  1 | 66 |  2 (0)| 00:00:01 | 
|* 68 |    TABLE ACCESS BY INDEX ROWID | CONTAINER     |  1 | 46 |  2 (0)| 00:00:01 | 
|* 69 |    INDEX UNIQUE SCAN   | CONTAINER450    |  1 |  |  1 (0)| 00:00:01 | 
| 70 |    TABLE ACCESS BY INDEX ROWID | PRODUCT      |  1 | 36 |  2 (0)| 00:00:01 | 
|* 71 |    INDEX UNIQUE SCAN    | PRODUCT502     |  1 |  |  1 (0)| 00:00:01 | 
|* 72 |    INDEX RANGE SCAN    | HISTORYMAINLINE2   | 46 |  |  3 (0)| 00:00:01 | 
|* 73 |   TABLE ACCESS BY INDEX ROWID  | HISTORYMAINLINE    |  1 | 137 | 36 (0)| 00:00:01 | 
| 74 |   VIEW        |        |  1 | 35 | 16962 (1)| 00:03:24 | 
| 75 |   WINDOW BUFFER     |        |  1 | 34 | 16962 (1)| 00:03:24 | 
| 76 |    SORT GROUP BY     |        |  1 | 34 | 16962 (1)| 00:03:24 | 
| 77 |    VIEW       |        |  2 | 68 | 16961 (1)| 00:03:24 | 
| 78 |    UNION-ALL      |        |  |  |   |   | 
|* 79 |    TABLE ACCESS FULL   | A_WIPLOT     |  1 | 87 | 274 (1)| 00:00:04 | 
|* 80 |    TABLE ACCESS FULL   | A_WIPLOTHISTORY    |  1 | 81 | 16688 (1)| 00:03:21 | 
| 81 |  VIEW         |        |  1 | 40 | 17001 (1)| 00:03:25 | 
| 82 |  HASH UNIQUE       |        |  1 | 136 | 17001 (1)| 00:03:25 | 
| 83 |   NESTED LOOPS      |        |  |  |   |   | 
| 84 |   NESTED LOOPS      |        |  1 | 136 | 17000 (1)| 00:03:25 | 
| 85 |   NESTED LOOPS      |        |  1 | 64 | 16964 (1)| 00:03:24 | 
| 86 |   VIEW        |        |  1 | 35 | 16962 (1)| 00:03:24 | 
| 87 |    WINDOW BUFFER     |        |  1 | 34 | 16962 (1)| 00:03:24 | 
| 88 |    SORT GROUP BY     |        |  1 | 34 | 16962 (1)| 00:03:24 | 
| 89 |    VIEW       |        |  2 | 68 | 16961 (1)| 00:03:24 | 
| 90 |    UNION-ALL     |        |  |  |   |   | 
|* 91 |     TABLE ACCESS FULL   | A_WIPLOT     |  1 | 87 | 274 (1)| 00:00:04 | 
|* 92 |     TABLE ACCESS FULL   | A_WIPLOTHISTORY    |  1 | 81 | 16688 (1)| 00:03:21 | 
|* 93 |   TABLE ACCESS BY INDEX ROWID  | CONTAINER     |  1 | 29 |  2 (0)| 00:00:01 | 
|* 94 |    INDEX UNIQUE SCAN    | CONTAINER450    |  1 |  |  1 (0)| 00:00:01 | 
|* 95 |   INDEX RANGE SCAN     | HISTORYMAINLINE2   | 46 |  |  3 (0)| 00:00:01 | 
|* 96 |   TABLE ACCESS BY INDEX ROWID  | HISTORYMAINLINE    |  1 | 72 | 36 (0)| 00:00:01 | 
| 97 |  VIEW         |        |  1 | 26 | 42 (3)| 00:00:01 | 
| 98 |  HASH UNIQUE       |        |  1 | 161 | 42 (3)| 00:00:01 | 
| 99 |  NESTED LOOPS       |        |  |  |   |   | 
| 100 |  NESTED LOOPS       |        |  1 | 161 | 41 (0)| 00:00:01 | 
| 101 |   NESTED LOOPS      |        |  1 | 80 |  5 (0)| 00:00:01 | 
| 102 |   NESTED LOOPS      |        |  1 | 63 |  4 (0)| 00:00:01 | 
| 103 |   VIEW        |        |  1 | 17 |  2 (0)| 00:00:01 | 
| 104 |   TABLE ACCESS FULL    | SYS_TEMP_0FD9DE946_81931B5A |  1 | 66 |  2 (0)| 00:00:01 | 
|*105 |   TABLE ACCESS BY INDEX ROWID  | CONTAINER     |  1 | 46 |  2 (0)| 00:00:01 | 
|*106 |   INDEX UNIQUE SCAN    | CONTAINER450    |  1 |  |  1 (0)| 00:00:01 | 
|*107 |   INDEX UNIQUE SCAN     | PRODUCT502     |  1 | 17 |  1 (0)| 00:00:01 | 
|*108 |   INDEX RANGE SCAN     | HISTORYMAINLINE2   | 46 |  |  3 (0)| 00:00:01 | 
|*109 |  TABLE ACCESS BY INDEX ROWID   | HISTORYMAINLINE    |  1 | 81 | 36 (0)| 00:00:01 | 
--------------------------------------------------------------------------------------------------------------------------- 

Predicate Information (identified by operation id): 
--------------------------------------------------- 

    15 - filter("WL"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "WL"."SPECNAME"='8080_STAB_BAKE_1_FT' AND 
       "WL"."CONTAINERNAME" LIKE :LOTID AND "WL"."CONTAINERNAME" NOT LIKE '%TEST%' AND "WL"."CONTAINERNAME" IS NOT NULL) 
    16 - filter("WL"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "WL"."SPECNAME"='8080_STAB_BAKE_1_FT' AND 
       "WL"."CONTAINERNAME" LIKE :LOTID AND "WL"."CONTAINERNAME" NOT LIKE '%TEST%' AND "WL"."CONTAINERNAME" IS NOT NULL) 
    17 - access("C"."CONTAINERID"="WL"."CONTAINERID") 
    18 - filter("C"."CONTAINERNAME" LIKE :LOTID) 
    19 - access("C"."CONTAINERID"="HML"."HISTORYID") 
    20 - filter("HML"."WIPTRACKINGGROUPKEYID" IS NOT NULL AND "HML"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND 
       "HML"."SPECNAME"='8080_STAB_BAKE_1_FT' AND "HML"."CDONAME"='TrackInLot' AND 
       "WL"."WIPTRACKIGGROUPKEYID"="HML"."WIPTRACKINGGROUPKEYID") 
    22 - access("TI8080"."CONTAINERID"="TO8090"."CONTAINERID"(+)) 
     filter("TO8090"."TXNDATE"(+)>="TI8090"."TXNDATE") 
    24 - access("from$_subquery$_054"."QCSJ_C000000005200000"="TI8090"."CONTAINERID"(+)) 
     filter("TI8090"."TXNDATE"(+)>="from$_subquery$_054"."TXNDATE") 
    25 - access("TI8080"."CONTAINERID"="MO8925"."CONTAINERID"(+)) 
     filter("MO8925"."TXNDATE"(+)>="MI8527"."TXNDATE") 
    27 - access("TI8080"."CONTAINERID"="MI8527"."CONTAINERID"(+)) 
     filter("MI8527"."TXNDATE"(+)>="TO8080"."TXNDATE") 
    29 - access("TI8080"."CONTAINERID"="TO8080"."CONTAINERID"(+)) 
     filter("TO8080"."TXNDATE"(+)>="TI8080"."TXNDATE") 
    30 - filter("TI8080"."CONTAINERNAME" LIKE :LOTID AND "TI8080"."CONTAINERNAME" NOT LIKE '%TEST%' AND 
       "TI8080"."CONTAINERNAME" IS NOT NULL AND TRUNC(INTERNAL_FUNCTION("TI8080"."TXNDATE"))>TRUNC([email protected]!-7)) 
    40 - filter("C"."CONTAINERNAME" LIKE :LOTID) 
    41 - access("TI"."CONTAINERID"="C"."CONTAINERID") 
    42 - access("C"."PRODUCTID"="P"."PRODUCTID") 
    43 - access("C"."CONTAINERID"="HML"."HISTORYID") 
    44 - filter("HML"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "HML"."SPECNAME"='8080_STAB_BAKE_1_FT' AND 
       "HML"."CDONAME"='TrackOutLot') 
    53 - filter("C"."CONTAINERNAME" LIKE :LOTID) 
    54 - access("TI"."CONTAINERID"="C"."CONTAINERID") 
    56 - access("C"."PRODUCTID"="P"."PRODUCTID") 
    57 - access("C"."CONTAINERID"="HML"."HISTORYID") 
    58 - filter("HML"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "HML"."SPECNAME"='8527_STAGE_BAKE_FT' AND 
       "HML"."CDONAME"='MoveInLot' AND ("HML"."CALLBYCDONAME"='TestWIPMain' OR "HML"."CALLBYCDONAME"='TestWIPMoveNonStd')) 
    61 - access("WL"."WIPTRACKIGGROUPKEYID"="HML"."WIPTRACKINGGROUPKEYID" AND "C"."CONTAINERID"="WL"."CONTAINERID") 
    68 - filter("C"."CONTAINERNAME" LIKE :LOTID) 
    69 - access("TI"."CONTAINERID"="C"."CONTAINERID") 
    71 - access("C"."PRODUCTID"="P"."PRODUCTID") 
    72 - access("C"."CONTAINERID"="HML"."HISTORYID") 
    73 - filter("HML"."WIPTRACKINGGROUPKEYID" IS NOT NULL AND "HML"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND 
       "HML"."SPECNAME"='8925_2ND_RM_TST_SOT_2_FT' AND "HML"."CDONAME"='CreateFirstInsertion' AND 
       ("HML"."CALLBYCDONAME"='LotMoveOut' OR "HML"."CALLBYCDONAME"='MoveLot' OR 
       "HML"."CALLBYCDONAME"='TestWIPMoveNonStd')) 
    79 - filter("WL"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "WL"."SPECNAME"='8925_2ND_RM_TST_SOT_2_FT' AND 
       "WL"."CONTAINERNAME" LIKE :LOTID AND "WL"."CONTAINERNAME" NOT LIKE '%TEST%' AND "WL"."CONTAINERNAME" IS NOT NULL) 
    80 - filter("WL"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "WL"."SPECNAME"='8925_2ND_RM_TST_SOT_2_FT' AND 
       "WL"."CONTAINERNAME" LIKE :LOTID AND "WL"."CONTAINERNAME" NOT LIKE '%TEST%' AND "WL"."CONTAINERNAME" IS NOT NULL) 
    91 - filter("WL"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "WL"."SPECNAME"='8090_2ND_BAKE_IN_OVEN_SOT_FT' AND 
       "WL"."CONTAINERNAME" LIKE :LOTID AND "WL"."CONTAINERNAME" NOT LIKE '%TEST%' AND "WL"."CONTAINERNAME" IS NOT NULL) 
    92 - filter("WL"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "WL"."SPECNAME"='8090_2ND_BAKE_IN_OVEN_SOT_FT' AND 
       "WL"."CONTAINERNAME" LIKE :LOTID AND "WL"."CONTAINERNAME" NOT LIKE '%TEST%' AND "WL"."CONTAINERNAME" IS NOT NULL) 
    93 - filter("C"."CONTAINERNAME" LIKE :LOTID) 
    94 - access("C"."CONTAINERID"="WL"."CONTAINERID") 
    95 - access("C"."CONTAINERID"="HML"."HISTORYID") 
    96 - filter("HML"."WIPTRACKINGGROUPKEYID" IS NOT NULL AND "HML"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND 
       "HML"."SPECNAME"='8090_2ND_BAKE_IN_OVEN_SOT_FT' AND "HML"."CDONAME"='TrackInLot' AND 
       "WL"."WIPTRACKIGGROUPKEYID"="HML"."WIPTRACKINGGROUPKEYID") 
105 - filter("C"."CONTAINERNAME" LIKE :LOTID) 
106 - access("TI"."CONTAINERID"="C"."CONTAINERID") 
107 - access("C"."PRODUCTID"="P"."PRODUCTID") 
108 - access("C"."CONTAINERID"="HML"."HISTORYID") 
109 - filter("HML"."WORKFLOWNAME"='6_2B2R-DP_WIP' AND "HML"."SPECNAME"='8090_2ND_BAKE_IN_OVEN_SOT_FT' AND 
       "HML"."CDONAME"='TrackOutLot') 
+1

统计数据表明Oracle认为大多数表只包含1行。这是真的吗?还是需要为甲骨文收集一些适当的统计数据? –

+0

托尼,你好,查询实际上返回10行,它需要我11秒,只是为了显示这些行。 – GianIsTheName

+0

一个建议,尝试使用sqlfiddle.com或任何其他选择,如果有这样的问题之一。如果您为所有创建的表提供了sqlfiddle,您将会尽快得到答案。 – Bren

回答

0

它看起来像几乎所有的表都只有一行。在这种情况下,全表扫描会更快。您可以通过指定FULL提示来实现此目的。

+0

嘿史蒂夫。我想知道如何做到这一点。我对Oracle非常陌生。非常感谢。 – GianIsTheName

+0

oracle文档是你的朋友http://docs.oracle.com/cd/B19306_01/server.102/b14211/hintsref.htm,当然还有谷歌。 – steve