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

DB2 SQL优化,该怎么处理

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

热点排行