SQL语句优化和前端AJAX

连的orcale 想请教一下各位..这个SQL语句还有能优化的地方嘛..库里五六十万条记录+一张1100W条的表,加上前端传过来的条件也要20s+..查询结果返回的时候前端也已经异步返回了.查询结果不显示..

不知道有没有什么办法能让sql执行快一点,或者还是只能把前端ajax改成同步?


        SELECT
        CE.EQUIP_NUMBER AS devid,
        CE.ENCURBANDISTRICT,
        CE.ENCREGION,
        CE.ENCBANK,
        CE.ENCDOT,
        se.TOTALDEPOSITAMOUNT,
        se.TOTALWITHDRAWALAMOUNT,
        se.TOTALDEPOSITLONGSHORT,
        se.TOTALWITHDRAWALLONGSHORT,
        to_char(to_date(se.EXDATE,'yyyy-mm-dd'),'yyyy-mm-dd')||' '||substr(se.EXTIME,0,2)||':'||substr(se.EXTIME,3,2)||':'||substr(se.EXTIME,5,2) AS nrdate,
        se.RZ100,
        se.RZ50,
        se.RZ20,
        se.RZ10,
        se.RZ5,
        se.RZ1,
        se.RY10,
        se.RY5,
        se.RY1,
        se.RCJ10,
        se.RCJ5,
        se.RCJ1,
        se.CZ100,
        se.CZ50,
        se.CZ20,
        se.CZ10,
        se.CZ5,
        se.CZ1,
        se.CY10,
        se.CY5,
        se.CY1,
        se.CCJ10,
        se.CCJ5,
        se.CCJ1 FROM
        CFG_EQUIPINFO CE inner join
        (SELECT
        s.*,ROWNUM RN from 
        (SELECT x1.*,
        row_number() over(partition by devid,to_char(to_date(x1.EXDATE,'yyyy-mm-dd'),'yyyy-mm-dd')||' '||substr(x1.EXTIME,0,2)||':'||substr(x1.EXTIME,3,2)||':'||substr(x1.EXTIME,5,2) order by to_char(to_date(x1.EXDATE,'yyyy-mm-dd'),'yyyy-mm-dd')||' '||substr(x1.EXTIME,0,2)||':'||substr(x1.EXTIME,3,2)||':'||substr(x1.EXTIME,5,2)) su 
        FROM
        SN_ENCEXCHANGEINFO  x1 where 1=1

        ) s
        ) se ON se.DEVID = CE.equip_number
        where 1 = 1
        and su=1

4个回答

第一步排除耗时久的原因
1.首页 你把里面的子查询语句测试看耗时久不久,
2.去除不必要的字段
3.字段内容多的字段肯定查询久,建议分成子表。不用的时候不查
4. TO_DATA TO_CHAR这种字符串操作能在实体bean里面操作就在实体bean里面操作
5.加索引 这个最普遍,(个人认为才四五十万应该不是这个原因)

songqiang2011
像忘了谁sq 回复ccystewart: 尽量不要写那么复杂的sql,宁愿在程序里面多做一些处理。
6 个月之前 回复
songqiang2011
像忘了谁sq 回复ccystewart: 建议你分开查不要联表,联表不利于维护以后要修改你还得重新理思路
6 个月之前 回复
ccystewart
CCCCCCCYYY_ 因为是银行方面 数据都是不能少..其中联的一个表一千多万数据 不知道是不是这个原因。索引也加了,但是普通索引
6 个月之前 回复

索引加了吗?
把sql拆分吧

用explain 来检查一下索引是否生效,如果所有索引都生效了的话。可以尝试把sql拆分开单独查询,然后在后端组装数据试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问