DB2 Access计划图的说明

Sau*_*wal 1 db2 db2-luw

我使用db2exfmt实用程序为查询生成了访问计划,但我无法理解相同的内容.

请任何人都可以解释一下访问计划(比如括号中的数字是什么,/ ----- + ------\etc)

    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
Run Code Online (Sandbox Code Playgroud)

小智 5

从下往上阅读.每个节点都是为满足查询而完成的操作.TBSCAN意味着扫描整个表格(通常在您的表格较小时进行).HSJOIN是一个'Hash Join' - 使用hashmap连接内存中两个表的行.

我们来看一个节点

          4
       TBSCAN
       (   3)
       7.58097
          1
          |
          4
   TABLE: DB2INST1.TABA
Run Code Online (Sandbox Code Playgroud)

顶部'4'是返回的行数.下一行'TBSCAN'是使用的算法(TBSCAN表示表扫描.HSJOIN表示通过hashmap连接).在DB2中,这称为'运算符''(3)'是序列号.您可以发现此查询被分解为4个步骤7.58097是执行此查询到此步骤的累积成本,称为"计时器".它根据数据库的配置方式进行调整,优化器将选择最小化此成本的访问计划.底部4是I/O操作的成本.

您省略了db2exfmt的更多信息.但该图表告诉您DB2将如何执行查询.