DB2索引设置

时间:2014-04-02 15:01:31

标签: db2

我正在查看一些表源代码,我不确定索引是如何工作的。这是我看到的例子。

CREATE INDEX INDEXNAME ON AWARD ( AWARD_ID, CUST_ID );

我不明白参数值的含义。是每个列的索引,还是它们组合在一起成为索引。

1 个答案:

答案 0 :(得分:2)

这是一个包含两个字段的索引。索引通常用于选择,加入,分组和/或排序。

要实现的关键是多列索引从左到右是有用的。

对于选择,如果你有一个看似

的where子句,这样的索引会非常有用
WHERE AWARD_ID = 123 AND CUST_ID = 456

如果对

也有帮助
WHERE AWARD_ID = 123

但可能没有(直接)帮助

WHERE CUST_ID = 456

由于未引用索引的最左列(AWARD_ID)。

以类似的方式加入作品。

--index useful
FROM TBLA JOIN AWARD USING (AWARD_ID,CUST_ID)
 or
FROM TBLA JOIN AWARD USING (AWARD_ID)
--index NOT useful
FROM TBLA JOIN AWARD USING (CUST_ID)

和排序和分组一样。

如果您恰好使用DB2 for IBM i,以下文章是一个很棒的资源:

http://www-304.ibm.com/partnerworld/wps/servlet/ContentHandler/stg_ast_sys_wp_db2_i_indexing_methods_strategies

如果是DB2 LUW,有关位图索引的部分可能适用,但忽略有关EVI索引的信息。另请参阅DB2 LUW信息中心的规划和性能子部分索引部分 http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.perf.doc/com.ibm.db2.luw.admin.perf.doc-gentopic8.html