sql语句优化

SELECT r.xm name ,r.rybh id,r.gmsfhm idCard,r.syrklb peopleType FROM xrapuser.ry_jbxx r WHERE r.zxbs='0' AND r.ryzzbh=#value# UNION ALL

SELECT r.xm name ,j.ldrkbh id,r.gmsfhm idCard,r.syrklb peopleType FROM eeds_xrapuser.ry_jzrkxx j LEFT JOIN xrapuser.ry_jbxx r ON j.rybh=r.rybh WHERE j.zxbs='0' AND r.zxbs='0' AND j.zzbh=#value# UNION ALL

SELECT r.xm name ,l.ldrkbh id,r.gmsfhm idCard,r.syrklb peopleType FROM eeds_xrapuser.ry_ldrkxx l LEFT JOIN xrapuser.ry_jbxx r ON l.rybh=r.rybh WHERE l.zxbs='0' AND r.zxbs='0' AND l.zzbh=#value#

这是三张表: ry_jbxx 40多万数据  ry_jzrkxx 8万多条数据  ry_ldrkxx 32万多条数据

     ldrkxx  和 jzrkxx 这两个表 都与 ryjbxx表关联 (那两张表没有关系)   现在要通过住址编号查人员   住址编号分别在 三张表中
     rybh是主键  drkxx  和 jzrkxx 这两个表 对应 ryjbxx  是 多对一

需要优化方案  现在执行5秒  太慢了  这个表不是我们能管的  只能在sql语句上进行调优   哪个大神帮忙解决一下    谢谢!

参与3

2同行回答

db2china2db2china2技术经理DB2咨询服务
回复 1# 菜鸟DB 从SQL的角度来看,在不改变业务逻辑的情况下,对SQL进行重写如下:SELECT r.xm name ,r.rybh   id,r.gmsfhm idCard,r.syrklb peopleType FROM xrapuser.ry_jbxx r WHERE r.zxbs='0' AND r.ryzzbh=#value# UNION ALL SELECT r.xm name ,j.ldrkbh id,r...显示全部
回复 1# 菜鸟DB
从SQL的角度来看,在不改变业务逻辑的情况下,对SQL进行重写如下:
SELECT r.xm name ,r.rybh   id,r.gmsfhm idCard,r.syrklb peopleType FROM xrapuser.ry_jbxx r WHERE r.zxbs='0' AND r.ryzzbh=#value#
UNION ALL
SELECT r.xm name ,j.ldrkbh id,r.gmsfhm idCard,r.syrklb peopleType FROM eeds_xrapuser.ry_jzrkxx j
                ,N xrapuser.ry_jbxx r WHERE j.rybh=r.rybh
                AND j.zxbs='0' AND r.zxbs='0' AND j.zzbh=#value#
UNION ALL
SELECT r.xm name ,l.ldrkbh id,r.gmsfhm idCard,r.syrklb peopleType FROM eeds_xrapuser.ry_ldrkxx l
                , JOIN xrapuser.ry_jbxx r WHERE l.rybh=r.rybh
                AND l.zxbs='0' AND r.zxbs='0' AND l.zzbh=#value#

(另外要是能提供3张表的索引、此SQL的执行计划出来,综合分析更好,另注意他们的统计信息是否最新了。)收起
IT咨询服务 · 2015-04-09
浏览730
请把执行计划贴出来显示全部
请把执行计划贴出来收起
证券 · 2015-04-09
浏览717

提问者

菜鸟DB
软件开发工程师联想

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-04-03
  • 关注会员:1 人
  • 问题浏览:6143
  • 最近回答:2015-04-09
  • X社区推广