索引的怪异问题

部分更新语句的字段可能是最匹配的索引里面包含的字段,
那么他可能导致全表检索

Key:
EQDBNT ASC , EQFKND ASC , EQFPP ASC , EQCPP ASC , EQSTLI ASC

UPDATE TABLEXX SET EQFPP='A' WHERE EQDBNT=1111 AND EQFKND='AAA'

这时候这个索引不能被匹配
如果
UPDATE TABLEXX SET EQAAA='AAA' WHERE EQDBNT=111 AND EQFKND='AAA'
索引能够被正确使用.

所以为了使用索引提高UPDATE的速度,最好避免更新目标索引的字段,如果必须更新,就必须建立冗余索引


======================
再次发现,
如果目标索引字段A B C D E 
       Where里面存在的条件 A B C D
       SET 里面存在A B C D任意组合,那么实际上索引能够被使用
       倘若---SET 里面存在D ,那么索引就不会被使用.....不晓得DB2/400为啥这么奇怪.
原文地址:https://www.cnblogs.com/wildfish/p/496593.html