Объяснение графика плана доступа к DB2

Я создал план доступа для запроса с помощью утилиты db2exfmt, но не могу его понять.

Пожалуйста, объясните мне план доступа (например, что означают цифры в скобках, /-----+------\ и т. д.)

    Access Plan:
    -----------
    Total Cost:    15.1619
    Query Degree:  1

          Rows 
         RETURN
         (   1)
          Cost 
           I/O 
            |
            3 
         HSJOIN
         (   2)
         15.1619 
            2 
     /-----+------\
    4                3 
 TBSCAN           TBSCAN
 (   3)           (   4)
 7.58097          7.58036 
    1                1 
    |                |
    4                3 
 TABLE: DB2INST1  TABLE: DB2INST1
  TABA             TABB
   Q2               Q1

person Saurabh Agrawal    schedule 06.09.2012    source источник


Ответы (1)


Читай снизу вверх. Каждый узел — это операция, которая выполняется для удовлетворения запроса. TBSCAN означает, что сканируется вся таблица (что часто происходит, когда ваши таблицы маленькие). HSJOIN — это «хэш-соединение» — объединение строк из двух таблиц в памяти с помощью хэш-карты.

Давайте посмотрим на один узел

          4
       TBSCAN
       (   3)
       7.58097
          1
          |
          4
   TABLE: DB2INST1.TABA

Верхние «4» — это количество возвращенных строк. Следующая строка «TBSCAN» — это используемый алгоритм (TBSCAN означает сканирование таблицы. HSJOIN означает соединение по хэш-карте). В DB2 это называется «Оператор». «(3)» — это порядковый номер. Вы можете обнаружить, что этот запрос разбит на 4 шага. 7,58097 — это совокупная стоимость выполнения этого запроса до этого шага в так называемых «таймерах». Он корректируется в зависимости от того, как настроена ваша база данных, и оптимизатор выберет план доступа, который минимизирует эту стоимость. Нижние 4 — это стоимость операции с точки зрения ввода-вывода.

Вы пропустили гораздо больше информации из db2exfmt. Но график показывает, как DB2 будет выполнять запрос.

person user980717    schedule 07.09.2012