DB2访问计划图的说明

DB2访问计划图的说明,db2,db2-luw,Db2,Db2 Luw,我已经使用db2exfmt实用程序为查询生成了一个访问计划,但我无法理解相同的内容 有人能给我解释一下访问计划吗(比如括号中的数字是什么意思?/----+----\etc) 从头到尾读。每个节点都是为满足查询而执行的操作。TBSCAN意味着扫描整个表(当您的表很小时,通常会发生这种情况)。HSJOIN是一种“哈希连接”——用哈希映射连接内存中两个表中的行 让我们看一个节点 4 TBSCAN ( 3) 7.58097

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

有人能给我解释一下访问计划吗(比如括号中的数字是什么意思?/----+----\etc)


从头到尾读。每个节点都是为满足查询而执行的操作。TBSCAN意味着扫描整个表(当您的表很小时,通常会发生这种情况)。HSJOIN是一种“哈希连接”——用哈希映射连接内存中两个表中的行

让我们看一个节点

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


db2exfmt中还有很多您忽略的信息。但是该图告诉您DB2将如何执行查询。

从下到上阅读它。每个节点都是为满足查询而执行的操作。TBSCAN意味着扫描整个表(当您的表很小时,通常会发生这种情况)。HSJOIN是一种“哈希连接”——用哈希映射连接内存中两个表中的行

让我们看一个节点

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

db2exfmt中还有很多您忽略的信息。但该图告诉您DB2将如何执行查询