证券

多表连接时,为何走表扫描

图中Q2和Q3的关联字段有WHERE (Q3."LICE_DOC_STATUS" = '2') AND (Q3."REGIE_ID" = '000000000222222') AND (Q1."IF_USED" = '1')  AND (Q3."LICENSE_CODE" = Q2."LICENSE_CODE") AND (Q3."CUST_ID" = Q2."CUST_ID")这里连接实际返回结果集行数为0,为何会让Q2...显示全部

tabscan.jpg


图中Q2和Q3的关联字段有
WHERE (Q3."LICE_DOC_STATUS" = '2') AND (Q3."REGIE_ID" = '000000000222222') AND (Q1."IF_USED" = '1')  AND (Q3."LICENSE_CODE" = Q2."LICENSE_CODE") AND (Q3."CUST_ID" = Q2."CUST_ID")



这里连接实际返回结果集行数为0,为何会让Q2表作为外表,不带条件的用TABSCAN呢?能调整吗?
附件是执行计划,非常感谢各位.



附件:

附件图标tabscan_01.fmt (39.97 KB)

附件图标db2batch_01.out (643.17 KB)

收起
参与31

查看其它 30 个回答xu5762173的回答

xu5762173xu5762173数据库管理员Ess
回复 28# mdkii


    mkdii您好,
现在发现,很多表连接都有这个问题
select t1.c1,t2.c1 from t1,t2 where t1.c2=t2.c2 and t1.c3=t2.c3 and t2.c4='aaa'

类似这样的SQL,t1和t2连接时多于一个条件,t2有本地谓词
t1都走表扫描,这个除了修改SQL,还有别的办法处理吗
证券 · 2013-06-26
浏览1008

回答者

xu5762173
数据库管理员Ess
擅长领域: 服务器数据库存储

xu5762173 最近回答过的问题

回答状态

  • 发布时间:2013-06-26
  • 关注会员:0 人
  • 回答浏览:1008
  • X社区推广