软件开发 db2 9.7

SQL优化

insert into session.CORE_ACCOUNT select distinct case when b.DFANAC19 is null then a.JLADAC22 else b.DFANAC19 end,
        to_char(a.JLBCDATE,'yyyy-MM-dd') from DM_CORE_BLFMCDJL a left join DM_CORE_BWFMDCIM b
        on a.JLADAC22 = b.CDNOAC19 where substr(a.JLADAC22,1,2) <> '20' and JLDFFLAG = '1' and to_char(a.JLBCDATE,'yyyy-MM-dd') <= v_enddate;       

  insert into session.CORE_BDFMHQABTMP
        select AB01AC15,AB02CCYC,AB03CHSX,AB05CSNO,AB08ACST,AB09NO16,AB10NO10,AB14BAL,AB15BAL,AB16BAL,RCSTRS1B,
        case when begdate <= v_startdate then v_startdate else begdate end,
        case when enddate > v_enddate then to_char(date(v_enddate) + 1 days,'yyyy-MM-dd') else enddate end
        from DM_CORE_BDFMHQAB_ZIP a where a.begdate <= v_enddate and a.enddate>=v_startdate and
        not exists (select 1 from session.CORE_ACCOUNT where AB01AC15 = JLADAC22);  用了not exists速度很慢 怎么优化下

DM_CORE_BDFMHQAB_ZIP 这个表里面符合条件的大概有140万 ,session.CORE_ACCOUNT 这个表里面大概有2万
参与26

25 同行回答

SmileWind SmileWind 项目经理 杭州信雅达数码科技
回复 25# 张东焕 就这一句 设置下就可以了么?显示全部
回复 25# 张东焕
就这一句 设置下就可以了么? 收起
软件开发 · 2014-05-08
浏览1437
张东焕 张东焕 技术总监 IBM官方授权讲师
db2set DB2_ANTIJOIN=YES显示全部
db2set DB2_ANTIJOIN=YES 收起
IT咨询服务 · 2014-05-08
浏览1415
张东焕 张东焕 技术总监 IBM官方授权讲师
SQL不用动呀,加变量后,重新执行,看看Explain,是不是语句是否被改写了。显示全部
SQL不用动呀,加变量后,重新执行,看看Explain,是不是语句是否被改写了。 收起
IT咨询服务 · 2014-05-08
浏览1423
stevenluffy stevenluffy DBA IBM
回复 22# SmileWind     可否在构建临时表的时候将数据库直接加工为最终模式,这样就避免了where中的函数了显示全部
回复 22# SmileWind


    可否在构建临时表的时候将数据库直接加工为最终模式,这样就避免了where中的函数了 收起
证券 · 2014-05-08
浏览1473
SmileWind SmileWind 项目经理 杭州信雅达数码科技
回复 21# stevenluffy 数据的原因却是需要这样 问题就在这个地方显示全部
回复 21# stevenluffy
数据的原因却是需要这样 问题就在这个地方 收起
软件开发 · 2014-05-08
浏览1436
stevenluffy stevenluffy DBA IBM
回复 20# SmileWind     感觉你有更原始的需求,因为你使用了临时表。一般情况来说,临时表的数据就是为了实现某种功能而加工过的了,但是在where子句中竟然还是出现了那么多函数。显示全部
回复 20# SmileWind


    感觉你有更原始的需求,因为你使用了临时表。一般情况来说,临时表的数据就是为了实现某种功能而加工过的了,但是在where子句中竟然还是出现了那么多函数。 收起
证券 · 2014-05-08
浏览1394
SmileWind SmileWind 项目经理 杭州信雅达数码科技
回复 19# stevenluffy 我这用的是零时表啊declare GLOBAL TEMPORARY TABLE  session.CORE_BDFMHQABTMP (    AB01AC15 CHARACTER(15),  AB02CCYC   CHARACTER(3),  AB03CHSX   CHARACTER(1),&nbs...显示全部
回复 19# stevenluffy
我这用的是零时表啊
declare GLOBAL TEMPORARY TABLE  session.CORE_BDFMHQABTMP (  
  AB01AC15 CHARACTER(15),
  AB02CCYC   CHARACTER(3),
  AB03CHSX   CHARACTER(1),
  AB05CSNO  CHARACTER(11),
  AB08ACST   CHARACTER(1),
  AB09NO16   CHARACTER(16),
  AB10NO10   CHARACTER(10),
  AB14BAL  DECIMAL(15, 2),
  AB15BAL  DECIMAL(15, 2),
  AB16BAL  DECIMAL(15, 2),
  RCSTRS1B   CHARACTER(1),
  begdate  CHARACTER(10),
  enddate  CHARACTER(10)
)  NOT LOGGED WITH REPLACE;--
  
  declare GLOBAL TEMPORARY TABLE  session.CORE_ACCOUNT (  
  JLADAC22 CHARACTER(22),
  JLBCDATE VARCHAR(10)
)  NOT LOGGED WITH REPLACE;--

CREATE TABLE LOAN.DM_CORE_BDFMHQAB_ZIP (
  AB01AC15 CHARACTER(15),
  BEGDATE CHARACTER(10),
  ENDDATE CHARACTER(10),
  AB05CSNO CHARACTER(11),
  AB08ACST CHARACTER(1),
  AB09NO16 CHARACTER(16),
  AB10NO10 CHARACTER(10),
  AB14BAL DECIMAL(15, 2),
  AB15BAL DECIMAL(15, 2),
  AB16BAL DECIMAL(15, 2),
  RCSTRS1B CHARACTER(1),
  AVERBAL DECIMAL(15, 2),
  AB02CCYC CHARACTER(3),
  AB03CHSX CHARACTER(1)
  ) 收起
软件开发 · 2014-05-08
浏览1474
stevenluffy stevenluffy DBA IBM
请问能发一下相关表的表结构么,只需要关联字段和主键。显示全部
请问能发一下相关表的表结构么,只需要关联字段和主键。 收起
证券 · 2014-05-08
浏览1422
SmileWind SmileWind 项目经理 杭州信雅达数码科技
回复 8# 张东焕 具体说下 就比如要怎么配置 或者sql怎么写 什么的显示全部
回复 8# 张东焕
具体说下 就比如要怎么配置 或者sql怎么写 什么的 收起
软件开发 · 2014-05-08
浏览1431
SmileWind SmileWind 项目经理 杭州信雅达数码科技
回复 8# 张东焕 具体怎么用请指教显示全部
回复 8# 张东焕
具体怎么用请指教 收起
软件开发 · 2014-05-08
浏览1480

提问者

SmileWind
项目经理 杭州信雅达数码科技
评论23

相关问题

问题状态

  • 发布时间:2014-05-07
  • 关注会员:1 人
  • 问题浏览:11360
  • 最近回答:2014-05-08
  • X社区推广