首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

DB2 SQL优化解决思路

2013-01-12 
DB2 SQL优化请大家看看下班的这个sql有什么可优化的地方,最好加下原理,非常感谢SELECTcount(a.EVT_ID) as

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这种值比较分散的关联字段设为数据库分区键

热点排行