LoveUnix » DB2 & Informix » db2连接查询索引不起作用的问题
让LU留住您的每

一天 让LU博客留住您的每一天
2008-4-10 09:19 fengzhizi2005
db2连接查询索引不起作用的问题

遇到一个比较奇怪的问题,测试环境和生产环境上执行相同的SQL语句:
select A.TRAN_ID, A.RISKTYPE,A.TRAN_DATE, A.TRAN_TIME, A.BK, A.BR,
        A.PRE_SEQUENCE_ID , A.TLT, B.AC, A.CI_NAME, A.SEQUENCE_ID,
        B.TRAN_DATE as RS_TRAN_DATE, B.TRAN_TIME as RS_TRAN_TIME, B.TRAN_CODE
        as RE_TRAN_CODE, B.CCY as RE_TRAN_CCY, B.AMT as RE_TRAN_AMT, B.TLT as
        RE_TRAN_TLT, A.PROC_FLAG, A.SUP
from AORMS.ARMS_sp20001 A left join AORMS.ARMS_RESOURCE_TRAN B on
        A.PRE_SEQUENCE_ID=B.SEQUENCE_ID and A.TRAN_DATE=B.TRAN_DATE
针对查询条件两表都建立了复合索引
测试环境上的用到了索引,见附件aqtout_test.txt的分析结果
生产环境上不能用到ARMS_RESOURCE_TRAN表的索引,见附件aqtout_product.txt的分析结果
烦请各位帮忙分析分析可能存在的原因,谢谢~~

2008-4-10 12:33 beginner-bj
runstatis做了吗?

2008-4-12 18:56 darkbug
[quote]原帖由 [i]beginner-bj[/i] 于 2008-4-10 12:33 发表 [url=http://bbs.loveunix.net/redirect.php?goto=findpost&pid=774327&ptid=83115][img]http://bbs.loveunix.net/images/common/back.gif[/img][/url]
runstatis做了吗? [/quote]

这个是关键

2008-4-17 18:37 zdygk
有index 不一定就一定会用到的:
1.  statistics 最新否?  看上两层楼的回答;
2.  如果大部分的行需要访问, 优化器可能采用表扫描;
3.  小的表也可能直接采用表扫描, 即使有可用的index;
4.  Index的集群度较低时;

2008-4-17 18:39 zdygk
另外, 你自己看你附件里边的SQL, join 的条件是不同的

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.