部分更新语句的字段可能是最匹配的索引里面包含的字段,
那么他可能导致全表检索
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为啥这么奇怪.