永发信息网

这段Oracle语句的优化

答案:1  悬赏:40  手机版
解决时间 2021-05-25 23:10
 select A.paycomp,
                           fg_customfile.compname,--客户.单位名称
                           fg_customfile.roadno,--客户.配送路线
                           '' as roadname,
                           enterprise.address1,--往来单位.单位住址
                           '' as isaddhurry,
                           '' as isselfcarry,
                           (Case
                             When Exists (Select 1
                                     From ec_sendermst B
                                    Where A.Paycomp = B.Paycomp
                                      And B.Sendtype = 'T') Then
                              0
                             Else
                              1
                           End) as isred,
                           sum(decode(sendtype,'F',ec_senderdtl.sendsum)) as fsendsum, --发货单金额
                           sum(decode(sendtype,'T',ec_senderdtl.sendsum)) as tsendsum, --退货单金额
                           (sum(ec_senderdtl.sendsum)) as invsum
                      from ec_sendermst A, ec_senderdtl, fg_customfile, enterprise
                     where A.ocode = AS_OCODE
                       and (A.sendtype <> 'Y' and A.sendtype <> 'D')
                       and A.sendid = ec_senderdtl.sendid
                       and A.appflg = 1
                       and ec_senderdtl.orgflg = 1 --是否原行(1:原行,0或null: 非原行)
                       and fg_customfile.ocode = '001'
                       and fg_customfile.compno = A.paycomp --客户.单位代码=发货单主表.结算单位
                       and fg_customfile.compno = enterprise.compno--客户.单位代码=往来单位.单位代码
           -- 发货单类型('F'发货单、'T'退货单、'E'换货型退货单、'H'换货单、'D'调拨单、'C'调整单、‘Y'移库单,'I':委托代销初始单据)      --销售性质(01经销、02代销、03直销、04内调、05转储)
                       and A.sendtype in ('D', 'F', 'T', 'E', 'H', 'I') and A.salepre in ('01','03')
                       --开贷项凭单状态(0,未开 1,部分 2,全部)
                       and (ec_senderdtl.makebalflg is null or ec_senderdtl.makebalflg = 0 or ec_senderdtl.makebalflg = 1)
                       --标准数量 * (标准数量-开贷项凭单数量)
                       and ec_senderdtl.sqty * (ec_senderdtl.sqty - nvl(ec_senderdtl.smakebalqty, 0)) > 0
                       group by A.paycomp,fg_customfile.compname,fg_customfile.roadno,enterprise.address1;
最佳答案
语句写的没什么问题,需要为语句中出现的字段建索引,如下:Create Index ix_account On Account(item_no,section_no,store_no,sales_cost)Create Index ix_items On items(item_no,sell_vat)Create Index ix_store_sections On store_sections(Name,store_no)Create Index ix_vat On vat(vat_no,perc)如果还是很慢,则需要考虑别的机制来查询,可以将统计结果存在一个临时表,页面数据从临时表取,写个作业调度sql不停的更新临时表里面的统计信息
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
关于2个单机游戏的问题
建行转账的手续费多少,跨行转账10W手续费是多
月租费24元,30次及以内不另收费,超过30元超
银尖山地址在哪,我要去那里办事
一容积为10L的汽缸内储存有密度为1.5×103kg/
蔡甸区武汉湙嘉地址在哪,我要去那里
我家的DVD读取不了DVD-ROM
服务店!?QQ空间新应用!?
民权县商丘张亮麻辣烫(绿洲路店)地址在什么地
谁能告诉我初二该如何安排学习时间??
艾青写女人的诗歌,求一些比较感性的句子
麻城市黄冈麻城农村商业银行(龙池桥支行)地址
常州松奥厨卫厂地址在什么地方,想过去办事
曹操写的名句
祁阳县永州中国邮政(观音滩邮政支局)地址在什
推荐资讯
樊城区襄樊天济大药房(八十二分店)在什么地方
DNF豆瓣1015A测试卡号是多少
苏州医药科技学校3年的药学可以考药剂师证吗
川汇区周口牛羊肉泡馍馆这个地址在什么地方,
未来做什么行业好,未来20年~中国哪个行业最
从公明怎样去深圳圳美
什么音频播放器可以看歌曲的MV
上海奉贤区怎么去长寿路?
路上垃圾怎么办
陕西信合的富秦卡可以跨行异地转账吗?
元素觉醒在即!关于元素觉醒被动技能的取舍?
音乐分享怎么也下载不了,该如何下载?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?