目录
问题现象
客户最近遇到银行对账单管理-在线下载很慢的问题。
问题分析
查看spr发现银行对账单管理-在线下载大部分耗时都在sql耗时上。
nc.itf.obm.ebankdzd.IEbankDzdService.doBusinessDetail这个方法在查询上,耗时371159ms。
sql耗时:333754ms
相关sql
select batm_dailyofcashbank.pk_dailyofcashbank pk_dailyofcashbank, batm_dailyofcashbank.ts ts, batm_dailyofcashbank.dr dr, batm_dailyofcashbank.vdef8 vdef8, batm_dailyofcashbank.glcoutmoney glcoutmoney, batm_dailyofcashbank.vdef7 vdef7, batm_dailyofcashbank.vdef9 vdef9, batm_dailyofcashbank.transdate transdate, batm_dailyofcashbank.lastbalance lastbalance, batm_dailyofcashbank.pk_org_v pk_org_v, batm_dailyofcashbank.pk_bankdoc pk_bankdoc, batm_dailyofcashbank.vdef20 vdef20, batm_dailyofcashbank.vdef2 vdef2, batm_dailyofcashbank.olcbalance olcbalance, batm_dailyofcashbank.vdef1 vdef1, batm_dailyofcashbank.vdef4 vdef4, batm_dailyofcashbank.vdef3 vdef3, batm_dailyofcashbank.vdef6 vdef6, batm_dailyofcashbank.accnum accnum, batm_dailyofcashbank.vdef5 vdef5, batm_dailyofcashbank.inmoney inmoney, batm_dailyofcashbank.gllcinmoney gllcinmoney, batm_dailyofcashbank.balance balance, batm_dailyofcashbank.glcinmoney glcinmoney, batm_dailyofcashbank.pk_currtype pk_currtype, batm_dailyofcashbank.pk_org pk_org, batm_dailyofcashbank.olcinmoney olcinmoney, batm_dailyofcashbank.pk_fatherorg pk_fatherorg, batm_dailyofcashbank.ucode ucode, batm_dailyofcashbank.gllcoutmoney gllcoutmoney, batm_dailyofcashbank.glcbalance glcbalance, batm_dailyofcashbank.bankname bankname, batm_dailyofcashbank.pk_bankaccsub pk_bankaccsub, batm_dailyofcashbank.gllcbalance gllcbalance, batm_dailyofcashbank.vdef10 vdef10, batm_dailyofcashbank.pk_bankaccbas pk_bankaccbas, batm_dailyofcashbank.vdef11 vdef11, batm_dailyofcashbank.outmoney outmoney, batm_dailyofcashbank.arapprop arapprop, batm_dailyofcashbank.vdef15 vdef15, batm_dailyofcashbank.vdef14 vdef14, batm_dailyofcashbank.vdef13 vdef13, batm_dailyofcashbank.vdef12 vdef12, batm_dailyofcashbank.vdef19 vdef19, batm_dailyofcashbank.annualavgbalance annualavgbalance, batm_dailyofcashbank.vdef18 vdef18, batm_dailyofcashbank.vdef17 vdef17, batm_dailyofcashbank.olcoutmoney olcoutmoney, batm_dailyofcashbank.vdef16 vdef16, batm_dailyofcashbank.pk_group pk_group, batm_dailyofcashbank.usablebalance usablebalance, batm_dailyofcashbank.fundformcode fundformcode, batm_dailyofcashbank.pk_banktype pk_banktype from batm_dailyofcashbank batm_dailyofcashbank where batm_dailyofcashbank.dr = 0 and batm_dailyofcashbank.fundformcode = 1 and batm_dailyofcashbank.pk_bankaccbas = '1001A41000000000N9WS' and batm_dailyofcashbank.pk_bankaccsub = '1001A41000000000N9WT' and batm_dailyofcashbank.pk_currtype = '1002Z0100000000001K1' and batm_dailyofcashbank.transdate BETWEEN '2022-06-14' and '2022-06-21'
相关执行计划,发现再走全表扫描,执行计划显示为4小时20分钟。
batm_dailyofcashbank 表中数量 是在1.26亿中查询1条数据出来。这个是走的全表扫描,创建索引解决。
发现创建索引执行了5658.282s。
解决办法
create index index_batm_daily on BATM_DAILYOFCASHBANK(fundformcode,pk_bankaccbas,pk_bankaccsub,pk_currtype,transdate,DR) online nologging;
其他
优化后,执行计划为3s。