索引的怪异问题

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

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为啥这么奇怪.

posted @ 2006-09-06 17:27 深渊野鱼 阅读(85) 评论(3)  编辑 收藏 网摘 所属分类: AS400

  回复  引用    
#1楼 2008-08-26 09:53 | fxf_china [未注册用户]
请教,
怎么看这句sql用的是哪个索引?
谢谢
  回复  引用  查看    
#2楼 [楼主]2008-08-28 09:21 | 深渊野鱼      
用navigator可以看运行情况 ,里面有一个运行sql脚本,你打开输入sql,点 分析并运行 或者单纯分析可以看到他使用哪个索引
  回复  引用    
#3楼 2008-09-08 10:39 | fxf_china [未注册用户]
谢谢楼主,改天试试




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-09-07 09:57 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: