天天看點

oracle order by為何慢,使用了order by 後查詢非常慢!

1

2        -------------------------------------------------------------------------------------------------

3        | Id  | Operation                            |  Name                    | Rows  | Bytes | Cost  |

4        -------------------------------------------------------------------------------------------------

5        |   0 | SELECT STATEMENT                     |                          |       |       |       |

6        |   1 |  SORT ORDER BY                       |                          |       |       |       |

7        |   2 |   MERGE JOIN OUTER                   |                          |       |       |       |

8        |   3 |    SORT JOIN                         |                          |       |       |       |

9        |   4 |     MERGE JOIN OUTER                 |                          |       |       |       |

10        |   5 |      SORT JOIN                       |                          |       |       |       |

11        |   6 |       TABLE ACCESS BY INDEX ROWID    | TD_SERVICE_STATUS        |       |       |       |

12        |   7 |        NESTED LOOPS                  |                          |       |       |       |

13        |   8 |         NESTED LOOPS                 |                          |       |       |       |

14        |   9 |          NESTED LOOPS                |                          |       |       |       |

15        |* 10 |           TABLE ACCESS BY INDEX ROWID| TD_SERVICE_FORM          |       |       |       |

16        |* 11 |            INDEX RANGE SCAN          | I_SERVICE_FORM_ORG_CODE  |       |       |       |

17        |  12 |           TABLE ACCESS BY INDEX ROWID| TD_CUSTOMER_INFO         |       |       |       |

18        |* 13 |            INDEX UNIQUE SCAN         | PK_CUSTOMER_ID           |       |       |       |

19        |  14 |          TABLE ACCESS BY INDEX ROWID | TS_ORGANIZATION_INFO     |       |       |       |

20        |* 15 |           INDEX UNIQUE SCAN          | PK_ORGANIZATION_CODE     |       |       |       |

21        |* 16 |         INDEX RANGE SCAN             | I_SERVICE_STATUS         |       |       |       |

22        |* 17 |      SORT JOIN                       |                          |       |       |       |

23        |  18 |       VIEW                           | V_MAX_UNREPAIR_STATUS    |       |       |       |

24        |  19 |        NESTED LOOPS                  |                          |       |       |       |

25        |  20 |         NESTED LOOPS                 |                          |       |       |       |

26        |  21 |          VIEW                        |                          |       |       |       |

27        |  22 |           SORT GROUP BY              |                          |       |       |       |

28        |* 23 |            TABLE ACCESS FULL         | TD_UNREPAIR_STATUS_INFO  |       |       |       |

29        |* 24 |          TABLE ACCESS BY INDEX ROWID | TD_UNREPAIR_STATUS_INFO  |       |       |       |

30        |* 25 |           INDEX UNIQUE SCAN          | PK_UNREPAIR_ID           |       |       |       |

31        |* 26 |         TABLE ACCESS BY INDEX ROWID  | TD_SERVICE_FORM          |       |       |       |

32        |* 27 |          INDEX UNIQUE SCAN           | PK_REPAIR_NO             |       |       |       |

33        |* 28 |    SORT JOIN                         |                          |       |       |       |

34        |  29 |     VIEW                             |                          |       |       |       |

35        |  30 |      SORT GROUP BY                   |                          |       |       |       |

36        |* 31 |       TABLE ACCESS FULL              | TD_UNREPAIR_STATUS_INFO  |       |       |       |

37        -------------------------------------------------------------------------------------------------

38

39        Predicate Information (identified by operation id):

40        ---------------------------------------------------

41

42          10 - filter("TF"."DEL_FLAG"<>1)

43          11 - access("TF"."ORGANIZATION_CODE"=84)

44          13 - access("TF"."CUSTOMER_ID"="TC"."CUSTOMER_ID&quot

oracle order by為何慢,使用了order by 後查詢非常慢!

45          15 - access("TF"."ORGANIZATION_CODE"="TI"."ORGANIZATION_CODE&quot

oracle order by為何慢,使用了order by 後查詢非常慢!

46          16 - access("TF"."REPAIR_NO"="TS"."REPAIR_NO" AND "TS"."REPAIR_STATUS"='P')

47          17 - access("TF"."REPAIR_NO"="TUS"."REPAIR_NO"(+))

48               filter("TF"."REPAIR_NO"="TUS"."REPAIR_NO"(+))

49          23 - filter("TD_UNREPAIR_STATUS_INFO"."END_DATE" IS NULL)

50          24 - filter("TUSI"."REPAIR_NO"="C"."REPAIR_NO" AND "TUSI"."END_DATE" IS NULL)

51          25 - access("TUSI"."UNREPAIR_ID"="C"."MAXID&quot

oracle order by為何慢,使用了order by 後查詢非常慢!

52          26 - filter("TSF"."CURRENT_STATUS"<>'T' AND "TSF"."CURRENT_STATUS"<>'R' AND

53                      "TSF"."CURRENT_STATUS"<>'M' AND "TSF"."CURRENT_STATUS"<>'D')

54          27 - access("TSF"."REPAIR_NO"="TUSI"."REPAIR_NO&quot

oracle order by為何慢,使用了order by 後查詢非常慢!

55          28 - access("AA"."UNREPAIR_ID"(+)="TUS"."UNREPAIR_ID&quot

oracle order by為何慢,使用了order by 後查詢非常慢!

56               filter("AA"."UNREPAIR_ID"(+)="TUS"."UNREPAIR_ID&quot

oracle order by為何慢,使用了order by 後查詢非常慢!

57          31 - filter("A"."END_DATE" IS NULL)

58

59        Note: rule based optimization