DB2 EXPLAIN命令是否包含INSERT语句的索引更新成本

时间:2014-05-26 05:53:46

标签: db2 db2-luw

我们目前正在研究改进我们在一组表上的索引。我在EXPLAIN输出中看到的是在表上创建适当的索引时某些SELECT查询的性能改进。但是我不知道EXPLAIN是否还包括INSERT(和UPDATE)语句中的成本附加索引。

我创建了一个测试插入语句,但无论我在某个表上创建的索引如何,它都会在timeron中显示相同的开销。

感谢您的投入!

1 个答案:

答案 0 :(得分:1)

直接来自IBM manual

  

EXPLAIN数据包含有关DB2用于处理SQL语句的访问路径的信息。 EXPLAIN数据的主要用途是调查语句的SELECT部分​​的访问路径。例如,EXPLAIN表中的数据描述:

     

是否对表的每次访问使用索引访问或表空间扫描。       使用索引访问时,使用了多少索引和索引列       使用哪种类型的I / O方法来读取数据页。       使用的连接方法和类型,以及DB2连接表的顺序。       DB2何时以及为何对数据行进行排序。

     

对于UPDATE和DELETE WHERE CURRENT OF,对于INSERT,提供的信息稍少。 EXPLAIN数据不描述所有或所有类型的访问。例如,对EXPLOB表数据中不显示对LOB值的访问,这些值与基表分开存储,以及对强制引用约束所需的父表或从属表的访问。

您需要在测试DB2系统上进行试验,无论是否添加索引以帮助SELECT更好地执行,都值得在INSERTS,UPDATES和DELETES中花费成本。对于大多数SELECTS比变化多的系统,索引成本通常是值得的。