软件开发优化

SQL 多次EXISTS语句优化,求大神解答

SELECT YEAR(@ksrq) TBNF,MONTH(@ksrq) TBYF,ROW_NUMBER() OVER(ORDER BY A.XM) AS INO,B.DZBH DZBH,A.XM,
(SELECT DAXX FROM SYS1_DAZB WHERE DAZX='02' AND WTBH='0100' AND DABH=A.XB) XBDIS,
CONVERT(VARCHAR(10),A.CSRQ,120) CSRQDIS,B.FQXM FQXM,B.MQXM MQXM,A.HKDZ HKDZ,A.JZDZ JZDZ,
A.LXDH LXDH,A.LXRDH LXRDH,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-00-20' AND SZNL<='0-02-00') MYJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-00-20' AND SZNL<='0-02-00') MYTZ,
(SELECT TOP 1 SC FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-00-20' AND SZNL<='0-02-00') MYSC,

(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=TZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-00-20' AND SZNL<='0-02-00' ORDER BY JCRQ DESC) MYTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-00-20' AND SZNL<='0-02-00' ORDER BY JCRQ DESC) MYSCPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCBTZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-00-20' AND SZNL<='0-02-00' ORDER BY JCRQ DESC) MYSCBTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0204' AND DABH=WYQK) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-00-20' AND SZNL<='0-02-00' ORDER BY JCRQ DESC) MYWYQK,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-02-01' AND SZNL<='0-04-00') SYJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-02-01' AND SZNL<='0-04-00') SYTZ,
(SELECT TOP 1 SC FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-02-01' AND SZNL<='0-04-00') SYSC,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=TZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-02-01' AND SZNL<='0-04-00' ORDER BY JCRQ DESC) SYTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-02-01' AND SZNL<='0-04-00' ORDER BY JCRQ DESC) SYSCPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCBTZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-02-01' AND SZNL<='0-04-00' ORDER BY JCRQ DESC) SYSCBTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0204' AND DABH=WYQK) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-02-01' AND SZNL<='0-04-00' ORDER BY JCRQ DESC) SYWYQK,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00') LYJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00') LYTZ,
(SELECT TOP 1 SC FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00') LYSC,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=TZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00' ORDER BY JCRQ DESC) LYTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00' ORDER BY JCRQ DESC) LYSCPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCBTZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00' ORDER BY JCRQ DESC) LYSCBTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0204' AND DABH=WYQK) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00' ORDER BY JCRQ DESC) LYWYQK,
(SELECT TOP 1 HB FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00' ORDER BY JCRQ DESC) LYHB,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0253' AND DABH=TL) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00' ORDER BY JCRQ DESC) LYTL,
(SELECT TOP 1 GJXLSM FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-04-01' AND SZNL<='0-07-00' ORDER BY JCRQ DESC) LYBAKP,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-07-01' AND SZNL<='0-10-00') BYJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-07-01' AND SZNL<='0-10-00') BYTZ,
(SELECT TOP 1 SC FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-07-01' AND SZNL<='0-10-00') BYSC,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=TZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-07-01' AND SZNL<='0-10-00' ORDER BY JCRQ DESC) BYTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-07-01' AND SZNL<='0-10-00' ORDER BY JCRQ DESC) BYSCPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCBTZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-07-01' AND SZNL<='0-10-00' ORDER BY JCRQ DESC) BYSCBTZPJ,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-10-01' AND SZNL<='1-02-00') YSJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-10-01' AND SZNL<='1-02-00') YSTZ,
(SELECT TOP 1 SC FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-10-01' AND SZNL<='1-02-00') YSSC,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=TZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-10-01' AND SZNL<='1-02-00' ORDER BY JCRQ DESC) YSTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-10-01' AND SZNL<='1-02-00' ORDER BY JCRQ DESC) YSSCPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCBTZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='0-10-01' AND SZNL<='1-02-00' ORDER BY JCRQ DESC) YSSCBTZPJ,
'' YSTL,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-02-01' AND SZNL<='1-08-00') YBYJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-02-01' AND SZNL<='1-08-00') YBYTZ,
(SELECT TOP 1 SC FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-02-01' AND SZNL<='1-08-00') YBYSC,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=TZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-02-01' AND SZNL<='1-08-00' ORDER BY JCRQ DESC) YBYTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-02-01' AND SZNL<='1-08-00' ORDER BY JCRQ DESC) YBYSCPJ,
(SELECT TOP 1 HB FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-02-01' AND SZNL<='1-08-00' ORDER BY JCRQ DESC) YBYHB,
(SELECT TOP 1 GJXLSM FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-02-01' AND SZNL<='1-08-00' ORDER BY JCRQ DESC) YBYBAKP,
'' YBYSL,'' YBYZS,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-08-01' AND SZNL<='2-02-00') ESYJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-08-01' AND SZNL<='2-02-00') ESYTZ,
(SELECT TOP 1 SC FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-08-01' AND SZNL<='2-02-00') ESYSC,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=TZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-08-01' AND SZNL<='2-02-00' ORDER BY JCRQ DESC) ESYTZPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-08-01' AND SZNL<='2-02-00' ORDER BY JCRQ DESC) ESYSCPJ,
(SELECT TOP 1 (SELECT DAXX FROM SYS1_DAZB WHERE DAZX='95' AND WTBH='0206' AND DABH=SCBTZPJ) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='1-08-01' AND SZNL<='2-02-00' ORDER BY JCRQ DESC) ESYSCBTZPJ,
'' ESTL,'' ESSL,'' ESZS,
(SELECT TOP 1 CONVERT(VARCHAR(10),JCRQ,120) FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='2-02-01' AND SZNL<='2-06-00') SSYJCRQ,
(SELECT TOP 1 TZ FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0' AND SZNL>='2-02-01' AND SZNL<='2-06-00') SSYTZ,
'' SLTL,'' SLSL,'' SLZS
FROM DA_GR_HXDA A,EB_BJ_XXK B
WHERE A.GRBJH=B.GRBJH AND A.JLZT='0' --AND EXISTS(SELECT LSH FROM EB_BJ_TGJC WHERE GRBJH=B.GRBJH AND JLZT='0')
AND B.JCDW in (SELECT JGBM FROM #ZCJG)
AND B.JLZT='0' AND B.SFLD=@sfld AND DATEDIFF(mm,A.CSRQ,@jsrq)>=0 AND DATEDIFF(mm,A.CSRQ,@jsrq)<=36 ORDER BY A.XM

SQL2005 DA_GR_HXDA 表100W数据,EB_BJ_XXK 2.5W数据,EB_BJ_TGJC  10W数据量
现在的语句基本sqlserver接近崩溃,求大神优化语句
参与4

3同行回答

liunx_rootliunx_root数据库管理员北京普信
太长,看的眼睛都累显示全部
太长,看的眼睛都累收起
互联网服务 · 2014-06-20
浏览1042
xiaoc20082008xiaoc20082008软件开发工程师北京某某科技公司
回复 2# sunpowercong    你是说建立临时表吗 试了下,也是不行的 临时表数据有10W条 跑的好慢好慢显示全部
回复 2# sunpowercong


   你是说建立临时表吗 试了下,也是不行的 临时表数据有10W条 跑的好慢好慢收起
软件开发 · 2014-06-20
浏览1002
sunpowercongsunpowercong数据库管理员BC
别说  sqlserver 奔溃了,看着看着都奔溃了。。。这么复杂,可否考虑增加一些中间步骤,一些中间表之类的?显示全部
别说  sqlserver 奔溃了,看着看着都奔溃了。。。
这么复杂,可否考虑增加一些中间步骤,一些中间表之类的?收起
互联网服务 · 2014-06-20
浏览1081

提问者

xiaoc20082008
软件开发工程师北京某某科技公司

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-06-20
  • 关注会员:1 人
  • 问题浏览:3768
  • 最近回答:2014-06-20
  • X社区推广