欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

db2 sql优化解决思路

更新时间: 2014-01-05 02:23:56 责任编辑: Author_N1

 

DB2 SQL优化
请大家看看下班的这个sql有什么可优化的地方,最好加下原理,非常感谢
SELECT                
      count(a.EVT_ID) as NUM  
FROM  PACCESSVIEW.Ivc_List  a 
inner join PACCESSVIEW.indiv_crd_act_rln b
            on  a.ivc_act=b.csr_act_crd_num 
            and b.crd_num=#trnNum#  
WHERE   a.TXN_DTE >= #qrySttDte# 
           AND a.TXN_DTE<= #qryEndDte# 
  AND a.CSR_ID =#csrId# 
  AND b.CRD_BOK_IND ='0'
--AND b.CRD_BOK_IND ='1'        
 AND a.PRT_REP_FLG=#prtFlg#          
 AND a.TXN_AMT=#txnAmt#  
以下是现有的索引:
CREATE INDEX "CBMART"."IVC_LIST1"
ON "CBMART"."IVC_LIST"
("IVC_ACT" ASC,
  "CSR_ID" ASC,
  "TXN_DTE" ASC)
IN "IDX_IVC"
PCTFREE 10
ALLOW REVERSE SCANS;

CREATE INDEX "CBMART"."IVC_LIST2"
ON "CBMART"."IVC_LIST"
("LST_AMD_DTE" ASC)
IN "IDX_IVC"
PCTFREE 10
ALLOW REVERSE SCANS;

CREATE INDEX "PDATA"."INDIV_CRD_ACT_RL1"
ON "PDATA"."INDIV_CRD_ACT_RLN"
("CRD_NUM" ASC,
  "CSR_ACT_CRD_NUM" ASC,
  "INDIV_CSR_ID" ASC)
PCTFREE 10
ALLOW REVERSE SCANS;
 
--参考方法--
看执行计划吧 sql优化需要知道的原理太多了。。。
--参考方法--
楼主建的复合索引应该没什么可优化的

如果单从结构上的说可以表改成按TXN_DTE,CRD_BOK_IND这种重复值较多的列分区

如果是dpf环境可以把ivc_act,csr_act_crd_num这种值比较分散的关联字段设为数据库分区键
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:23:56
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9346/
本文WWW.DOC100.NET DOC100.NET版权所有。