Стоимость Oracle «Total» действительно меньше, чем некоторые его элементы

Я не могу понять, почему иногда общая стоимость плана может быть очень малой, тогда как, глядя внутрь плана, мы можем найти огромные затраты. (на самом деле запрос очень медленный).

Может кто-нибудь объяснить мне это?

Вот пример. Очевидно, что дорогостоящая часть происходит из поля в главном выборе, которое создает список ошибок для подпредставления, а условие соединения с этим подпредставлением содержит сложное условие (мы можем объединить одно или другое поле).

| Id  | Operation                                    | Name                      | Rows  | Bytes | Cost  |
----------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                             |                           |     1 |   875 |    20 |
|   1 |  SORT GROUP BY                               |                           |     1 |   544 |       |
|   2 |   VIEW                                       |                           |     1 |   544 |     3 |
|   3 |    SORT UNIQUE                               |                           |     1 |   481 |     3 |
|   4 |     NESTED LOOPS                             |                           |       |       |       |
|   5 |      NESTED LOOPS                            |                           |     3 |  1443 |     2 |
|   6 |       TABLE ACCESS BY INDEX ROWID            |                           |     7 |   140 |     1 |
|   7 |        INDEX RANGE SCAN                      |                           |     7 |       |     1 |
|   8 |       INDEX UNIQUE SCAN                      |                           |     1 |       |     1 |
|   9 |      TABLE ACCESS BY INDEX ROWID             |                           |     1 |   461 |     1 |
|  10 |  SORT GROUP BY                               |                           |     1 |   182 |       |
|  11 |   NESTED LOOPS                               |                           |       |       |       |
|  12 |    NESTED LOOPS                              |                           |     8 |  1456 |     3 |
|  13 |     NESTED LOOPS                             |                           |     8 |   304 |     2 |
|  14 |      TABLE ACCESS BY INDEX ROWID             |                           |     7 |   154 |     1 |
|  15 |       INDEX RANGE SCAN                       |                           |     7 |       |     1 |
|  16 |      INDEX RANGE SCAN                        |                           |     1 |    16 |     1 |
|  17 |     INDEX RANGE SCAN                         |                           |     1 |       |     1 |
|  18 |    TABLE ACCESS BY INDEX ROWID               |                           |     1 |   144 |     1 |
|  19 |  SORT GROUP BY                               |                           |     1 |   268 |       |
|  20 |   VIEW                                       |                           |     1 |   268 |     9 |
|  21 |    SORT UNIQUE                               |                           |     1 |   108 |     9 |
|  22 |     CONCATENATION                            |                           |       |       |       |
|  23 |      NESTED LOOPS                            |                           |       |       |       |
|  24 |       NESTED LOOPS                           |                           |     1 |   108 |     4 |
|  25 |        NESTED LOOPS                          |                           |     1 |    79 |     3 |
|  26 |         NESTED LOOPS                         |                           |     1 |    59 |     2 |
|  27 |          TABLE ACCESS BY INDEX ROWID         |                           |     1 |    16 |     1 |
|  28 |           INDEX UNIQUE SCAN                  |                           |     1 |       |     1 |
|  29 |          TABLE ACCESS BY INDEX ROWID         |                           |     1 |    43 |     1 |
|  30 |           INDEX RANGE SCAN                   |                           |     1 |       |     1 |
|  31 |         TABLE ACCESS BY INDEX ROWID          |                           |     1 |    20 |     1 |
|  32 |          INDEX UNIQUE SCAN                   |                           |     1 |       |     1 |
|  33 |        INDEX UNIQUE SCAN                     |                           |     1 |       |     1 |
|  34 |       TABLE ACCESS BY INDEX ROWID            |                           |     1 |    29 |     1 |
|  35 |      NESTED LOOPS                            |                           |       |       |       |
|  36 |       NESTED LOOPS                           |                           |     1 |   108 |     4 |
|  37 |        NESTED LOOPS                          |                           |     1 |    79 |     3 |
|  38 |         NESTED LOOPS                         |                           |     1 |    59 |     2 |
|  39 |          TABLE ACCESS BY INDEX ROWID         |                           |     4 |    64 |     1 |
|  40 |           INDEX RANGE SCAN                   |                           |     2 |       |     1 |
|  41 |          TABLE ACCESS BY INDEX ROWID         |                           |     1 |    43 |     1 |
|  42 |           INDEX RANGE SCAN                   |                           |     1 |       |     1 |
|  43 |         TABLE ACCESS BY INDEX ROWID          |                           |     1 |    20 |     1 |
|  44 |          INDEX UNIQUE SCAN                   |                           |     1 |       |     1 |
|  45 |        INDEX UNIQUE SCAN                     |                           |     1 |       |     1 |
|  46 |       TABLE ACCESS BY INDEX ROWID            |                           |     1 |    29 |     1 |
|  47 |  SORT GROUP BY                               |                           |     1 |   330 |       |
|  48 |   VIEW                                       |                           |     1 |   330 | 26695 |
|  49 |    SORT UNIQUE                               |                           |     1 |   130 | 26695 |
|  50 |     CONCATENATION                            |                           |       |       |       |
|  51 |      HASH JOIN ANTI                          |                           |     1 |   130 | 13347 |
|  52 |       NESTED LOOPS                           |                           |       |       |       |
|  53 |        NESTED LOOPS                          |                           |     1 |   110 |     4 |
|  54 |         NESTED LOOPS                         |                           |     1 |    81 |     3 |
|  55 |          NESTED LOOPS                        |                           |     1 |    61 |     2 |
|  56 |           TABLE ACCESS BY INDEX ROWID        |                           |     1 |    16 |     1 |
|  57 |            INDEX UNIQUE SCAN                 |                           |     1 |       |     1 |
|  58 |           TABLE ACCESS BY INDEX ROWID        |                           |     1 |    45 |     1 |
|  59 |            INDEX RANGE SCAN                  |                           |     1 |       |     1 |
|  60 |          TABLE ACCESS BY INDEX ROWID         |                           |     1 |    20 |     1 |
|  61 |           INDEX UNIQUE SCAN                  |                           |     1 |       |     1 |
|  62 |         INDEX UNIQUE SCAN                    |                           |     1 |       |     1 |
|  63 |        TABLE ACCESS BY INDEX ROWID           |                           |     1 |    29 |     1 |
|  64 |       VIEW                                   |                           |   164K|  3220K| 13341 |
|  65 |        NESTED LOOPS                          |                           |       |       |       |
|  66 |         NESTED LOOPS                         |                           |   164K|    11M| 13341 |
|  67 |          NESTED LOOPS                        |                           |   164K|  8535K| 10041 |
|  68 |           TABLE ACCESS BY INDEX ROWID        |                           |   164K|  6924K|  8391 |
|  69 |            INDEX SKIP SCAN                   |                           |  2131K|       |   163 |
|  70 |           INDEX UNIQUE SCAN                  |                           |     1 |    10 |     1 |
|  71 |          INDEX UNIQUE SCAN                   |                           |     1 |       |     1 |
|  72 |         TABLE ACCESS BY INDEX ROWID          |                           |     1 |    20 |     1 |
|  73 |      HASH JOIN ANTI                          |                           |     2 |   260 | 13347 |
|  74 |       NESTED LOOPS                           |                           |       |       |       |
|  75 |        NESTED LOOPS                          |                           |     2 |   220 |     4 |
|  76 |         NESTED LOOPS                         |                           |     2 |   162 |     3 |
|  77 |          NESTED LOOPS                        |                           |     2 |   122 |     2 |
|  78 |           TABLE ACCESS BY INDEX ROWID        |                           |     4 |    64 |     1 |
|  79 |            INDEX RANGE SCAN                  |                           |     2 |       |     1 |
|  80 |           TABLE ACCESS BY INDEX ROWID        |                           |     1 |    45 |     1 |
|  81 |            INDEX RANGE SCAN                  |                           |     1 |       |     1 |
|  82 |          TABLE ACCESS BY INDEX ROWID         |                           |     1 |    20 |     1 |
|  83 |           INDEX UNIQUE SCAN                  |                           |     1 |       |     1 |
|  84 |         INDEX UNIQUE SCAN                    |                           |     1 |       |     1 |
|  85 |        TABLE ACCESS BY INDEX ROWID           |                           |     1 |    29 |     1 |
|  86 |       VIEW                                   |                           |   164K|  3220K| 13341 |
|  87 |        NESTED LOOPS                          |                           |       |       |       |
|  88 |         NESTED LOOPS                         |                           |   164K|    11M| 13341 |
|  89 |          NESTED LOOPS                        |                           |   164K|  8535K| 10041 |
|  90 |           TABLE ACCESS BY INDEX ROWID        |                           |   164K|  6924K|  8391 |
|  91 |            INDEX SKIP SCAN                   |                           |  2131K|       |   163 |
|  92 |           INDEX UNIQUE SCAN                  |                           |     1 |    10 |     1 |
|  93 |          INDEX UNIQUE SCAN                   |                           |     1 |       |     1 |
|  94 |         TABLE ACCESS BY INDEX ROWID          |                           |     1 |    20 |     1 |
|  95 |  NESTED LOOPS OUTER                          |                           |     1 |   875 |    20 |
|  96 |   NESTED LOOPS OUTER                         |                           |     1 |   846 |    19 |
|  97 |    NESTED LOOPS OUTER                        |                           |     1 |   800 |    18 |
|  98 |     NESTED LOOPS OUTER                       |                           |     1 |   776 |    17 |
|  99 |      NESTED LOOPS OUTER                      |                           |     1 |   752 |    16 |
| 100 |       NESTED LOOPS OUTER                     |                           |     1 |   641 |    15 |
| 101 |        NESTED LOOPS OUTER                    |                           |     1 |   576 |    14 |
| 102 |         NESTED LOOPS OUTER                   |                           |     1 |   554 |    13 |
| 103 |          NESTED LOOPS OUTER                  |                           |     1 |   487 |    12 |
| 104 |           NESTED LOOPS OUTER                 |                           |     1 |   434 |    11 |
| 105 |            NESTED LOOPS                      |                           |     1 |   368 |    10 |
| 106 |             NESTED LOOPS                     |                           |     1 |   102 |     9 |
| 107 |              NESTED LOOPS OUTER              |                           |     1 |    85 |     8 |
| 108 |               NESTED LOOPS                   |                           |     1 |    68 |     7 |
| 109 |                NESTED LOOPS                  |                           |    50 |  2700 |     6 |
| 110 |                 HASH JOIN                    |                           |    53 |  1696 |     5 |
| 111 |                  INLIST ITERATOR             |                           |       |       |       |
| 112 |                   TABLE ACCESS BY INDEX ROWID|                           |   520 | 10400 |     3 |
| 113 |                    INDEX RANGE SCAN          |                           |   520 |       |     1 |
| 114 |                  INLIST ITERATOR             |                           |       |       |       |
| 115 |                   TABLE ACCESS BY INDEX ROWID|                           | 91457 |  1071K|     1 |
| 116 |                    INDEX UNIQUE SCAN         |                           |     2 |       |     1 |
| 117 |                 TABLE ACCESS BY INDEX ROWID  |                           |     1 |    22 |     1 |
| 118 |                  INDEX UNIQUE SCAN           |                           |     1 |       |     1 |
| 119 |                TABLE ACCESS BY INDEX ROWID   |                           |     1 |    14 |     1 |
| 120 |                 INDEX UNIQUE SCAN            |                           |     1 |       |     1 |
| 121 |               TABLE ACCESS BY INDEX ROWID    |                           |     1 |    17 |     1 |
| 122 |                INDEX UNIQUE SCAN             |                           |     1 |       |     1 |
| 123 |              TABLE ACCESS BY INDEX ROWID     |                           |     1 |    17 |     1 |
| 124 |               INDEX UNIQUE SCAN              |                           |     1 |       |     1 |
| 125 |             TABLE ACCESS BY INDEX ROWID      |                           |     1 |   266 |     1 |
| 126 |              INDEX UNIQUE SCAN               |                           |     1 |       |     1 |
| 127 |            TABLE ACCESS BY INDEX ROWID       |                           |     1 |    66 |     1 |
| 128 |             INDEX UNIQUE SCAN                |                           |     1 |       |     1 |
| 129 |           TABLE ACCESS BY INDEX ROWID        |                           |     1 |    53 |     1 |
| 130 |            INDEX UNIQUE SCAN                 |                           |     1 |       |     1 |
| 131 |          TABLE ACCESS BY INDEX ROWID         |                           |     1 |    67 |     1 |
| 132 |           INDEX UNIQUE SCAN                  |                           |     1 |       |     1 |
| 133 |         INDEX RANGE SCAN                     |                           |     1 |    22 |     1 |
| 134 |        TABLE ACCESS BY INDEX ROWID           |                           |     1 |    65 |     1 |
| 135 |         INDEX UNIQUE SCAN                    |                           |     1 |       |     1 |
| 136 |       TABLE ACCESS BY INDEX ROWID            |                           |     1 |   111 |     1 |
| 137 |        INDEX UNIQUE SCAN                     |                           |     1 |       |     1 |
| 138 |      TABLE ACCESS BY INDEX ROWID             |                           |     1 |    24 |     1 |
| 139 |       INDEX UNIQUE SCAN                      |                           |     1 |       |     1 |
| 140 |     TABLE ACCESS BY INDEX ROWID              |                           |     1 |    24 |     1 |
| 141 |      INDEX UNIQUE SCAN                       |                           |     1 |       |     1 |
| 142 |    TABLE ACCESS BY INDEX ROWID               |                           |     1 |    46 |     1 |
| 143 |     INDEX UNIQUE SCAN                        |                           |     1 |       |     1 |
| 144 |   TABLE ACCESS BY INDEX ROWID                |                           |     1 |    29 |     1 |
| 145 |    INDEX UNIQUE SCAN                         |                           |     1 |       |     1 |
----------------------------------------------------------------------------------------------------------

Ответы на вопрос(1)

Ваш ответ на вопрос