Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

2135

积分

502

好友

184

主题
1#
发表于 2012-6-18 20:50:01 | 查看: 4180| 回复: 1
SQL优化减少逻辑读一例

多表LEFT JOIN 执行计划使用 NESTED LOOP导致逻辑读较多, 产生大量 latch: cache buffer chains等待事件, 优化该SQL意在减少逻辑读 避免latch free出现


原始SQL 使用了 use_hash hint但实际在子查询中并未生效
  1. SQL> set autotrace traceonly;
  2. SQL>
  3. SQL>
  4. SQL> SELECT /*+use_hash(TCATEGORY TPROCATMAPPING TPRODUCTPRICE
  5.   2               TPRODUCTBRIEF TBARCODE TBRAND)*/
  6.   3   PCC.SEQ_ID,
  7.   4   PCC.NC_CATEGORYNAME,
  8.   5   PCC.NC_CATEGORYNAME_EN,
  9.   6   NVL(B.CNT, 0) CONT,
  10.   7   PCC.N_SECONDCATEID N_PARENTID,
  11.   8   PCC.N_FIRESTCATEID N_PARENTID2
  12.   9    FROM TCATEGORY PCC
  13. 10    LEFT JOIN (SELECT A.SEQ_ID, COUNT(A.N_SKUID) CNT
  14. 11                 FROM (SELECT DISTINCT CAT.SEQ_ID, PRI.N_SKUID
  15. 12                         FROM TCATEGORY CAT
  16. 13                         LEFT JOIN TCATEGORY CAT2
  17. 14                           ON CAT.SEQ_ID = CAT2.N_THIRDCATEID
  18. 15                         LEFT JOIN TPROCATMAPPING PMC
  19. 16                           ON (CAT2.SEQ_ID = PMC.N_CATEGORYID OR
  20. 17                              CAT.SEQ_ID = PMC.N_CATEGORYID)
  21. 18                         LEFT JOIN TPRODUCTPRICE PRI
  22. 19                           ON PMC.N_PRODUCTID = PRI.N_SKUID
  23. 20                         LEFT JOIN TPRODUCTBRIEF BRI
  24. 21                           ON PRI.N_SKUID = BRI.SEQ_ID
  25. 22                         LEFT JOIN TBRAND BRA
  26. 23                           ON BRI.N_BRANDID = BRA.SEQ_ID
  27. 24                         LEFT JOIN TBARCODE BAR
  28. 25                           ON PRI.N_SKUID = BAR.N_PRODUCT_CODE
  29. 26                        WHERE CAT.N_FIRESTCATEID > 0
  30. 27                          AND CAT.N_SECONDCATEID > 0
  31. 28                          AND CAT.N_THIRDCATEID = 0
  32. 29                          AND PRI.N_SHOPID = 103
  33. 30                          AND (PRI.SI_STATUS = 2 OR PRI.SI_STATUS = 4)
  34. 31                          AND BAR.N_SHOPID = 103
  35. 32                          AND NVL(BAR.B_ISDELETE, '0') = '0'
  36. 33                          AND NOT BRI.C_ISIMAGE IS NULL
  37. 34                          AND NVL(BRA.B_ISDELETE, '0') = '0'
  38. 35                          AND PRI.N_PRICE > 0
  39. 36                          AND PRI.B_ISDELETE = '0'
  40. 37                          AND BRI.B_ISDELETE = '0'
  41. 38                          AND PRI.SI_RTSTATUS <> 8
  42. 39                          AND PRI.SI_RTSTATUS <> 9) A
  43. 40                GROUP BY A.SEQ_ID) B
  44. 41      ON PCC.SEQ_ID = B.SEQ_ID
  45. 42   WHERE PCC.N_FIRESTCATEID > 0
  46. 43     AND PCC.N_SECONDCATEID > 0
  47. 44     AND PCC.N_THIRDCATEID = 0
  48. 45     AND NOT PCC.NC_CATEGORYNAME IS NULL
  49. 46     AND NOT PCC.NC_CATEGORYNAME_EN IS NULL
  50. 47     AND B.CNT > 0
  51. 48   ORDER BY PCC.N_FIRESTCATEID ASC, PCC.N_SECONDCATEID ASC, PCC.SI_SORT ASC
  52. 49  /

  53. 514 rows selected.


  54. Execution Plan
  55. ----------------------------------------------------------
  56. Plan hash value: 3880035186

  57. ------------------------------------------------------------------------------------------------------------------------------
  58. | Id  | Operation                                    | Name                          | Rows  | Bytes | Cost (%CPU)| Time     |
  59. ------------------------------------------------------------------------------------------------------------------------------
  60. |   0 | SELECT STATEMENT                             |                               |     1 |    59 |   617   (1)| 00:00:01 |
  61. |   1 |  SORT ORDER BY                               |                               |     1 |    59 |   617   (1)| 00:00:01 |
  62. |   2 |   NESTED LOOPS                               |                               |       |       |            |          |
  63. |   3 |    NESTED LOOPS                              |                               |     1 |    59 |   616   (1)| 00:00:01 |
  64. |   4 |     VIEW                                     |                               |     1 |    16 |   616   (1)| 00:00:01 |
  65. |*  5 |      FILTER                                  |                               |       |       |            |          |
  66. |   6 |       HASH GROUP BY                          |                               |     1 |    16 |   616   (1)| 00:00:01 |
  67. |   7 |        VIEW                                  |                               |   139 |  2224 |   616   (1)| 00:00:01 |
  68. |   8 |         HASH UNIQUE                          |                               |   139 | 11676 |   616   (1)| 00:00:01 |
  69. |   9 |          CONCATENATION                       |                               |       |       |            |          |
  70. |  10 |           NESTED LOOPS OUTER                 |                               |    80 |  6720 |   406   (1)| 00:00:01 |
  71. |  11 |            NESTED LOOPS                      |                               |    11 |   858 |   388   (0)| 00:00:01 |
  72. |* 12 |             FILTER                           |                               |       |       |            |          |
  73. |* 13 |              HASH JOIN OUTER                 |                               |    10 |   700 |   348   (0)| 00:00:01 |
  74. |  14 |               NESTED LOOPS                   |                               |       |       |            |          |
  75. |  15 |                NESTED LOOPS                  |                               |    19 |  1254 |   339   (0)| 00:00:01 |
  76. |  16 |                 NESTED LOOPS                 |                               |    19 |   684 |   320   (0)| 00:00:01 |
  77. |  17 |                  NESTED LOOPS                |                               |    94 |  1974 |    38   (0)| 00:00:01 |
  78. |* 18 |                   TABLE ACCESS BY INDEX ROWID| TCATEGORY                     |     7 |    84 |     5   (0)| 00:00:01 |
  79. |* 19 |                    INDEX RANGE SCAN          | IDEX_N_THIRDCATEID            |     7 |       |     1   (0)| 00:00:01 |
  80. |  20 |                   TABLE ACCESS BY INDEX ROWID| TPROCATMAPPING                |    14 |   126 |     6   (0)| 00:00:01 |
  81. |* 21 |                    INDEX RANGE SCAN          | IDX_TPROCATMAPPING_CATEGORYID |    14 |       |     1   (0)| 00:00:01 |
  82. |* 22 |                  TABLE ACCESS BY INDEX ROWID | TPRODUCTPRICE                 |     1 |    15 |     3   (0)| 00:00:01 |
  83. |* 23 |                   INDEX RANGE SCAN           | IDX_TPRODUCTPRICE_SKUID       |     2 |       |     1   (0)| 00:00:01 |
  84. |* 24 |                 INDEX UNIQUE SCAN            | PK_TPRODUCTBRIEF              |     1 |       |     0   (0)| 00:00:01 |
  85. |* 25 |                TABLE ACCESS BY INDEX ROWID   | TPRODUCTBRIEF                 |     1 |    30 |     1   (0)| 00:00:01 |
  86. |  26 |               TABLE ACCESS FULL              | TBRAND                        |  1835 |  7340 |     9   (0)| 00:00:01 |
  87. |* 27 |             TABLE ACCESS BY INDEX ROWID      | TBARCODE                      |     1 |     8 |     4   (0)| 00:00:01 |
  88. |* 28 |              INDEX RANGE SCAN                | IDX_TBARCODE_PRODUCTCODE      |     2 |       |     1   (0)| 00:00:01 |
  89. |  29 |            TABLE ACCESS BY INDEX ROWID       | TCATEGORY                     |     7 |    42 |     5   (0)| 00:00:01 |
  90. |* 30 |             INDEX RANGE SCAN                 | IDEX_N_THIRDCATEID            |     7 |       |     1   (0)| 00:00:01 |
  91. |* 31 |           FILTER                             |                               |       |       |            |          |
  92. |  32 |            NESTED LOOPS OUTER                |                               |     3 |   252 |   209   (1)| 00:00:01 |
  93. |  33 |             NESTED LOOPS                     |                               |     6 |   480 |   203   (1)| 00:00:01 |
  94. |  34 |              NESTED LOOPS                    |                               |     5 |   360 |   183   (1)| 00:00:01 |
  95. |  35 |               NESTED LOOPS                   |                               |     5 |   210 |   178   (1)| 00:00:01 |
  96. |* 36 |                HASH JOIN                     |                               |    24 |   648 |   106   (1)| 00:00:01 |
  97. |  37 |                 NESTED LOOPS OUTER           |                               |    46 |   828 |    40   (0)| 00:00:01 |
  98. |* 38 |                  TABLE ACCESS BY INDEX ROWID | TCATEGORY                     |     7 |    84 |     5   (0)| 00:00:01 |
  99. |* 39 |                   INDEX RANGE SCAN           | IDEX_N_THIRDCATEID            |     7 |       |     1   (0)| 00:00:01 |
  100. |  40 |                  TABLE ACCESS BY INDEX ROWID | TCATEGORY                     |     7 |    42 |     5   (0)| 00:00:01 |
  101. |* 41 |                   INDEX RANGE SCAN           | IDEX_N_THIRDCATEID            |     7 |       |     1   (0)| 00:00:01 |
  102. |  42 |                 TABLE ACCESS FULL            | TPROCATMAPPING                | 22878 |   201K|    65   (0)| 00:00:01 |
  103. |* 43 |                TABLE ACCESS BY INDEX ROWID   | TPRODUCTPRICE                 |     1 |    15 |     3   (0)| 00:00:01 |
  104. |* 44 |                 INDEX RANGE SCAN             | IDX_TPRODUCTPRICE_SKUID       |     2 |       |     1   (0)| 00:00:01 |
  105. |* 45 |               TABLE ACCESS BY INDEX ROWID    | TPRODUCTBRIEF                 |     1 |    30 |     1   (0)| 00:00:01 |
  106. |* 46 |                INDEX UNIQUE SCAN             | PK_TPRODUCTBRIEF              |     1 |       |     0   (0)| 00:00:01 |
  107. |* 47 |              TABLE ACCESS BY INDEX ROWID     | TBARCODE                      |     1 |     8 |     4   (0)| 00:00:01 |
  108. |* 48 |               INDEX RANGE SCAN               | IDX_TBARCODE_PRODUCTCODE      |     2 |       |     1   (0)| 00:00:01 |
  109. |  49 |             TABLE ACCESS BY INDEX ROWID      | TBRAND                        |     1 |     4 |     1   (0)| 00:00:01 |
  110. |* 50 |              INDEX UNIQUE SCAN               | PK_TBRAND                     |     1 |       |     0   (0)| 00:00:01 |
  111. |* 51 |     INDEX UNIQUE SCAN                        | PK_TCATEGORY                  |     1 |       |     0   (0)| 00:00:01 |
  112. |* 52 |    TABLE ACCESS BY INDEX ROWID               | TCATEGORY                     |     1 |    43 |     1   (0)| 00:00:01 |
  113. ------------------------------------------------------------------------------------------------------------------------------

  114. Predicate Information (identified by operation id):
  115. ---------------------------------------------------

  116.    5 - filter(COUNT("A"."N_SKUID")>0)
  117.   12 - filter(NVL("BRA"."B_ISDELETE",'0')='0')
  118.   13 - access("BRA"."SEQ_ID"(+)=TO_NUMBER("BRI"."N_BRANDID"))
  119.   18 - filter("CAT"."N_FIRESTCATEID">0 AND "CAT"."N_SECONDCATEID">0)
  120.   19 - access("CAT"."N_THIRDCATEID"=0)
  121.   21 - access("CAT"."SEQ_ID"="PMC"."N_CATEGORYID")
  122.   22 - filter("PRI"."N_SHOPID"=103 AND ("PRI"."SI_STATUS"=2 OR "PRI"."SI_STATUS"=4) AND "PRI"."SI_RTSTATUS"<>8 AND
  123.               "PRI"."SI_RTSTATUS"<>9 AND "PRI"."B_ISDELETE"='0' AND "PRI"."N_PRICE">0)
  124.   23 - access("PMC"."N_PRODUCTID"="PRI"."N_SKUID")
  125.   24 - access("PRI"."N_SKUID"="BRI"."SEQ_ID")
  126.   25 - filter("BRI"."C_ISIMAGE" IS NOT NULL AND "BRI"."B_ISDELETE"='0')
  127.   27 - filter("BAR"."N_SHOPID"=103 AND NVL("BAR"."B_ISDELETE",'0')='0')
  128.   28 - access("PRI"."N_SKUID"="BAR"."N_PRODUCT_CODE")
  129.   30 - access("CAT"."SEQ_ID"="CAT2"."N_THIRDCATEID"(+))
  130.   31 - filter(NVL("BRA"."B_ISDELETE",'0')='0')
  131.   36 - access("CAT2"."SEQ_ID"="PMC"."N_CATEGORYID")
  132.        filter(LNNVL("CAT"."SEQ_ID"="PMC"."N_CATEGORYID"))
  133.   38 - filter("CAT"."N_FIRESTCATEID">0 AND "CAT"."N_SECONDCATEID">0)
  134.   39 - access("CAT"."N_THIRDCATEID"=0)
  135.   41 - access("CAT"."SEQ_ID"="CAT2"."N_THIRDCATEID"(+))
  136.   43 - filter("PRI"."N_SHOPID"=103 AND ("PRI"."SI_STATUS"=2 OR "PRI"."SI_STATUS"=4) AND "PRI"."SI_RTSTATUS"<>8 AND
  137.               "PRI"."SI_RTSTATUS"<>9 AND "PRI"."B_ISDELETE"='0' AND "PRI"."N_PRICE">0)
  138.   44 - access("PMC"."N_PRODUCTID"="PRI"."N_SKUID")
  139.   45 - filter("BRI"."C_ISIMAGE" IS NOT NULL AND "BRI"."B_ISDELETE"='0')
  140.   46 - access("PRI"."N_SKUID"="BRI"."SEQ_ID")
  141.   47 - filter("BAR"."N_SHOPID"=103 AND NVL("BAR"."B_ISDELETE",'0')='0')
  142.   48 - access("PRI"."N_SKUID"="BAR"."N_PRODUCT_CODE")
  143.   50 - access("BRA"."SEQ_ID"(+)=TO_NUMBER("BRI"."N_BRANDID"))
  144.   51 - access("PCC"."SEQ_ID"="B"."SEQ_ID")
  145.   52 - filter("PCC"."N_THIRDCATEID"=0 AND "PCC"."N_FIRESTCATEID">0 AND "PCC"."N_SECONDCATEID">0 AND
  146.               "PCC"."NC_CATEGORYNAME" IS NOT NULL AND "PCC"."NC_CATEGORYNAME_EN" IS NOT NULL)


  147. Statistics
  148. ----------------------------------------------------------
  149.           1  recursive calls
  150.           0  db block gets
  151.      154793  consistent gets
  152.           0  physical reads
  153.           0  redo size
  154.       30138  bytes sent via SQL*Net to client
  155.         898  bytes received via SQL*Net from client
  156.          36  SQL*Net roundtrips to/from client
  157.           1  sorts (memory)
  158.           0  sorts (disk)
  159.         514  rows processed
复制代码



过度使用NESTED LOOPS ,虽然单个表很小 只有几万行记录,但是在多表连接的情况下 仍产生了大量的逻辑读



使用NO_USE_NL HINT避免子查询中的  嵌套循环后 ,逻辑读有效减少:

  1. SQL> SELECT PCC.SEQ_ID,
  2.   2         PCC.NC_CATEGORYNAME,
  3.   3         PCC.NC_CATEGORYNAME_EN,
  4.   4         NVL(B.CNT, 0) CONT,
  5.   5         PCC.N_SECONDCATEID N_PARENTID,
  6.   6         PCC.N_FIRESTCATEID N_PARENTID2
  7.   7    FROM TCATEGORY PCC
  8.   8         LEFT JOIN (SELECT A.SEQ_ID,
  9.   9                           COUNT(A.N_SKUID) CNT
  10. 10                      FROM (SELECT /*+ NO_USE_NL(BAR,BRA,BRI,PRI,PMC,CAT2) */ DISTINCT CAT.SEQ_ID,
  11. 11                                   PRI.N_SKUID
  12. 12                              FROM TCATEGORY CAT
  13. 13                                   LEFT JOIN TCATEGORY CAT2
  14. 14                                     ON CAT.SEQ_ID = CAT2.N_THIRDCATEID
  15. 15                                   LEFT JOIN TPROCATMAPPING PMC
  16. 16                                     ON CAT2.SEQ_ID = PMC.N_CATEGORYID
  17. 17                                         OR CAT.SEQ_ID = PMC.N_CATEGORYID
  18. 18                                   LEFT JOIN TPRODUCTPRICE PRI
  19. 19                                     ON PMC.N_PRODUCTID = PRI.N_SKUID
  20. 20                                   LEFT JOIN TPRODUCTBRIEF BRI
  21. 21                                     ON PRI.N_SKUID = BRI.SEQ_ID
  22. 22                                   LEFT JOIN TBRAND BRA
  23. 23                                     ON BRI.N_BRANDID = BRA.SEQ_ID
  24. 24                                   LEFT JOIN TBARCODE BAR
  25. 25                                     ON PRI.N_SKUID = BAR.N_PRODUCT_CODE
  26. 26                             WHERE CAT.N_FIRESTCATEID > 0
  27. 27                               AND CAT.N_SECONDCATEID > 0
  28. 28                               AND CAT.N_THIRDCATEID = 0
  29. 29                               AND PRI.N_SHOPID = 103
  30. 30                               AND (PRI.SI_STATUS = 2
  31. 31                                     OR PRI.SI_STATUS = 4)
  32. 32                               AND BAR.N_SHOPID = 103
  33. 33              AND NVL (BAR.B_ISDELETE, '0') = '0'
  34. 34              AND BRI.C_ISIMAGE IS NOT NULL
  35. 35              AND NVL (BRA.B_ISDELETE, '0') = '0'
  36. 36              AND PRI.N_PRICE > 0
  37. 37              AND PRI.B_ISDELETE = '0'
  38. 38              AND BRI.B_ISDELETE = '0'
  39. 39              AND PRI.SI_RTSTATUS <> 8
  40. 40              AND PRI.SI_RTSTATUS <> 9) A GROUP BY A.SEQ_ID) B
  41. 41           ON PCC.SEQ_ID = B.SEQ_ID
  42. 42   WHERE PCC.N_FIRESTCATEID > 0
  43. 43     AND PCC.N_SECONDCATEID > 0
  44. 44     AND PCC.N_THIRDCATEID = 0
  45. 45     AND PCC.NC_CATEGORYNAME IS NOT NULL
  46. 46     AND PCC.NC_CATEGORYNAME_EN IS NOT NULL
  47. 47     AND B.CNT > 0
  48. 48   ORDER BY PCC.N_FIRESTCATEID ASC,
  49. 49            PCC.N_SECONDCATEID ASC,
  50. 50            PCC.SI_SORT ASC;

  51.                   
  52.                   
  53.                   
  54. 514 rows selected.


  55. Execution Plan
  56. ----------------------------------------------------------
  57. Plan hash value: 1864691228

  58. ---------------------------------------------------------------------------------------------------------------------------------
  59. | Id  | Operation                                       | Name                          | Rows  | Bytes | Cost (%CPU)| Time     |
  60. ---------------------------------------------------------------------------------------------------------------------------------
  61. |   0 | SELECT STATEMENT                                |                               |     1 |    59 |  1877   (2)| 00:00:01 |
  62. |   1 |  SORT ORDER BY                                  |                               |     1 |    59 |  1877   (2)| 00:00:01 |
  63. |   2 |   NESTED LOOPS                                  |                               |       |       |            |          |
  64. |   3 |    NESTED LOOPS                                 |                               |     1 |    59 |  1876   (2)| 00:00:01 |
  65. |   4 |     VIEW                                        |                               |     1 |    16 |  1875   (2)| 00:00:01 |
  66. |*  5 |      FILTER                                     |                               |       |       |            |          |
  67. |   6 |       HASH GROUP BY                             |                               |     1 |    16 |  1875   (2)| 00:00:01 |
  68. |   7 |        VIEW                                     |                               |   139 |  2224 |  1875   (2)| 00:00:01 |
  69. |   8 |         HASH UNIQUE                             |                               |   139 | 11676 |  1875   (2)| 00:00:01 |
  70. |*  9 |          FILTER                                 |                               |       |       |            |          |
  71. |* 10 |           HASH JOIN OUTER                       |                               |   139 | 11676 |  1874   (2)| 00:00:01 |
  72. |* 11 |            HASH JOIN                            |                               |   277 | 22160 |  1864   (1)| 00:00:01 |
  73. |  12 |             MERGE JOIN                          |                               |   236 | 16992 |  1382   (2)| 00:00:01 |
  74. |  13 |              SORT JOIN                          |                               |   236 |  9912 |  1002   (2)| 00:00:01 |
  75. |* 14 |               HASH JOIN                         |                               |   236 |  9912 |  1001   (1)| 00:00:01 |
  76. |  15 |                NESTED LOOPS                     |                               |       |       |            |          |
  77. |  16 |                 NESTED LOOPS                    |                               |  1153 | 31131 |   655   (1)| 00:00:01 |
  78. |  17 |                  MERGE JOIN OUTER               |                               |    46 |   828 |   109   (2)| 00:00:01 |
  79. |  18 |                   SORT JOIN                     |                               |     7 |    84 |     6  (17)| 00:00:01 |
  80. |* 19 |                    TABLE ACCESS BY INDEX ROWID  | TCATEGORY                     |     7 |    84 |     5   (0)| 00:00:01 |
  81. |* 20 |                     INDEX RANGE SCAN            | IDEX_N_THIRDCATEID            |     7 |       |     1   (0)| 00:00:01 |
  82. |* 21 |                   SORT JOIN                     |                               |  2159 | 12954 |   103   (1)| 00:00:01 |
  83. |  22 |                    TABLE ACCESS FULL            | TCATEGORY                     |  2159 | 12954 |   102   (0)| 00:00:01 |
  84. |  23 |                  BITMAP CONVERSION TO ROWIDS    |                               |       |       |            |          |
  85. |  24 |                   BITMAP OR                     |                               |       |       |            |          |
  86. |  25 |                    BITMAP CONVERSION FROM ROWIDS|                               |       |       |            |          |
  87. |* 26 |                     INDEX RANGE SCAN            | IDX_TPROCATMAPPING_CATEGORYID |       |       |     1   (0)| 00:00:01 |
  88. |  27 |                    BITMAP CONVERSION FROM ROWIDS|                               |       |       |            |          |
  89. |* 28 |                     INDEX RANGE SCAN            | IDX_TPROCATMAPPING_CATEGORYID |       |       |     1   (0)| 00:00:01 |
  90. |* 29 |                 TABLE ACCESS BY INDEX ROWID     | TPROCATMAPPING                |    25 |   225 |   655   (1)| 00:00:01 |
  91. |* 30 |                TABLE ACCESS FULL                | TPRODUCTPRICE                 |  4162 | 62430 |   345   (1)| 00:00:01 |
  92. |* 31 |              SORT JOIN                          |                               | 13374 |   391K|   380   (2)| 00:00:01 |
  93. |* 32 |               TABLE ACCESS FULL                 | TPRODUCTBRIEF                 | 13374 |   391K|   379   (1)| 00:00:01 |
  94. |* 33 |             TABLE ACCESS FULL                   | TBARCODE                      | 23223 |   181K|   481   (1)| 00:00:01 |
  95. |  34 |            TABLE ACCESS FULL                    | TBRAND                        |  1835 |  7340 |     9   (0)| 00:00:01 |
  96. |* 35 |     INDEX UNIQUE SCAN                           | PK_TCATEGORY                  |     1 |       |     0   (0)| 00:00:01 |
  97. |* 36 |    TABLE ACCESS BY INDEX ROWID                  | TCATEGORY                     |     1 |    43 |     1   (0)| 00:00:01 |
  98. ---------------------------------------------------------------------------------------------------------------------------------

  99. Predicate Information (identified by operation id):
  100. ---------------------------------------------------

  101.    5 - filter(COUNT("A"."N_SKUID")>0)
  102.    9 - filter(NVL("BRA"."B_ISDELETE",'0')='0')
  103.   10 - access("BRA"."SEQ_ID"(+)=TO_NUMBER("BRI"."N_BRANDID"))
  104.   11 - access("PRI"."N_SKUID"="BAR"."N_PRODUCT_CODE")
  105.   14 - access("PMC"."N_PRODUCTID"="PRI"."N_SKUID")
  106.   19 - filter("CAT"."N_FIRESTCATEID">0 AND "CAT"."N_SECONDCATEID">0)
  107.   20 - access("CAT"."N_THIRDCATEID"=0)
  108.   21 - access("CAT"."SEQ_ID"="CAT2"."N_THIRDCATEID"(+))
  109.        filter("CAT"."SEQ_ID"="CAT2"."N_THIRDCATEID"(+))
  110.   26 - access("CAT2"."SEQ_ID"="PMC"."N_CATEGORYID")
  111.   28 - access("CAT"."SEQ_ID"="PMC"."N_CATEGORYID")
  112.   29 - filter("CAT2"."SEQ_ID"="PMC"."N_CATEGORYID" OR "CAT"."SEQ_ID"="PMC"."N_CATEGORYID")
  113.   30 - filter("PRI"."N_SHOPID"=103 AND ("PRI"."SI_STATUS"=2 OR "PRI"."SI_STATUS"=4) AND "PRI"."SI_RTSTATUS"<>8 AND
  114.               "PRI"."SI_RTSTATUS"<>9 AND "PRI"."B_ISDELETE"='0' AND "PRI"."N_PRICE">0)
  115.   31 - access("PRI"."N_SKUID"="BRI"."SEQ_ID")
  116.        filter("PRI"."N_SKUID"="BRI"."SEQ_ID")
  117.   32 - filter("BRI"."C_ISIMAGE" IS NOT NULL AND "BRI"."B_ISDELETE"='0')
  118.   33 - filter("BAR"."N_SHOPID"=103 AND NVL("BAR"."B_ISDELETE",'0')='0')
  119.   35 - access("PCC"."SEQ_ID"="B"."SEQ_ID")
  120.   36 - filter("PCC"."N_THIRDCATEID"=0 AND "PCC"."N_FIRESTCATEID">0 AND "PCC"."N_SECONDCATEID">0 AND
  121.               "PCC"."NC_CATEGORYNAME" IS NOT NULL AND "PCC"."NC_CATEGORYNAME_EN" IS NOT NULL)


  122. Statistics
  123. ----------------------------------------------------------
  124.           0  recursive calls
  125.           0  db block gets
  126.       11368  consistent gets
  127.           0  physical reads
  128.           0  redo size
  129.       30138  bytes sent via SQL*Net to client
  130.         898  bytes received via SQL*Net from client
  131.          36  SQL*Net roundtrips to/from client
  132.           1  sorts (memory)
  133.           0  sorts (disk)
  134.         514  rows processed
复制代码
下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/zh-hans/emergency-services

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569   
2#
发表于 2012-6-18 22:07:42
我遇到的sql也有左连接,还是大量。。我是通过对特定的表建索引,使之只扫描索引返回数据,减少i/o,再对大表加上了并行查询。刘大的办法学习了,明天去试下!

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 11:25 , Processed in 0.061405 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569