Удаление заявления занимает много времени - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь удалить 1 запись из родительской таблицы (TAB_A с первичным ключом как COL_A ) в DB2 10.5.Эта таблица имеет много дочерних таблиц, но данные уже удалены из дочерних таблиц.Из-за ограничения внешнего ключа одно из сканирования индекса дочерней таблицы (TAB_B) (IDX1_TAB_B) требует больших затрат.TAB_B имеет составной индекс (IDX1_TAB_B = COL_C + COL_A ).Прикрепление плана выполнения ниже:

План оптимизатора:

                                                                                                                 Rows
                                                                                                               Operator
                                                                                                                 (ID)
                                                                                                                 Cost

                                                                                                                0.04
                                                                                                               FILTER
                                                                                                                ( 2)
                                                                                                               1450.45
                 +-------------------------+-------------------+--------------------------------------+----------+-------------------+---------------------+-------------------------+---------------------------+
                  1                      1.66864             1.07095                                   0                           6.30251               1.26543                   25.0657                        1
               DELETE                    IXSCAN              IXSCAN                                  FETCH                         IXSCAN                IXSCAN                    IXSCAN                      IXSCAN
                ( 3)                      ( 5)                ( 6)                                   ( 7)                           ( 9)                  (10)                      (11)                        (12)
               22.7049                   22.7038             **1344.45**                               0.0107876                       15.1445               22.7036                   7.58684                     15.1433
          /---/       \                    |                   |                             /----/         \                        |                     |                         |                           |
      1             6.91522e+06       6.56409e+06            75669                      0                       0                1.01318e+06           4.86182e+06                  213                     1.66563e+06
   IXSCAN         Table:            Index:               Index:                         IXSCAN           Table:                 Index:               Index:                 Index:                      Index:
    ( 4)          GEXPDBA           GEXPUSRT             GEXPDBA                         ( 8)            GEXPDBA                GEXPUSRT             GEXPUSRT               GEXPDBA                     GEXPDBA
   15.1415        TAB_A             IX6_XXXXXXXXXXXX     **IDX1_TAB_B**                    0.0105474         TZZZZZZZZZZZZZZZZZZZZ  IX1_LLLLLLLLLLLLLLL  IX1_LOOOOOOOOOOOOOOOO  IX1_LOCCCCCCCCCCCCCCCCCCCC  IDX_GE
     |                                                                                 |
 6.91522e+06                                                                           0

Индекс: Индекс: GEXPDBA GEXPDBA IDX_TAB_A IDX_ZZZZZZZZZZZZZZZ

1 Ответ

0 голосов
/ 23 мая 2019

Индекс со столбцами FK не в начале списка столбцов индекса (т. Е. (..., FKcol1 [, FKcol2, ...])) часто не так эффективен, как индекс с этими столбцами FK в начале списка столбцов индекса (т. Е. (FKcol1 [, FKcol2, ...])), когда дочерняя таблица участвует в операциях, требующих объединения с родительской таблицей, как в вопросе.
Таким образом, решение было просто создать такой индекс для повышения производительности операции (оператор delete) в родительской таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...