有时候写得不规范的SQL语句真的是占用很多时间

以下是我在工作中发现的规律,如果字段过多的使用函数,尽量不要将这些字段串联在一起做匹配或查询条件,比如红色注释部分,在执行红色部分的时候

这个SQL程序是执行了7分多钟,但是将函数分开做匹配的户查询时间不用1秒:

SELECT EBELN||'_'||LTRIM(SUBSTR(POSNR,1,6),'0')||'_'||LTRIM(SUBSTR(POSNR,7,4),'0') SO_LINE_ID,
EBELN,
SZ.MATNR,
SZ.POSNR,
WERKS
FROM SAPSR3.ZTSD_008_1@SAP_SEP SZ
WHERE
TRIM(SZ.ZTO_EC) IS NULL
AND
SZ.ZSTATE='R'
AND
TRIM(WERKS) IN('2501')
AND NOT EXISTS (SELECT NULL FROM SEINEEBS.FP_SALE_REQ_LINES_RPY@EC FS WHERE FS.SO_LINE_ID = EBELN||'_'||LTRIM(SUBSTR(POSNR,1,6),'0')||'_'||LTRIM(SUBSTR(POSNR,7,4),'0'))
AND EXISTS (SELECT NULL FROM STG.SAP_ZTSD_002 ST
WHERE TRIM(ST.EBELN_IMAGE) IS NOT NULL
  AND EXISTS (SELECT NULL FROM STG.SAP_EKKO_RS EKKO,STG.SAP_EKPO_RS EKPO
              WHERE EKKO.EBELN = EKPO.EBELN
                --AND LTRIM(ST.EBELN,'0')||'_'||LTRIM(ST.EBELP,'0') = LTRIM(EKPO.EBELN,'0')||'_'||LTRIM(EKPO.EBELP,'0')
                AND LTRIM(ST.EBELN,'0')=LTRIM(EKPO.EBELN,'0') AND LTRIM(ST.EBELP,'0')=LTRIM(EKPO.EBELP,'0')--更改部分
                AND NVL(EKKO.RESWK,EKPO.WERKS) NOT IN ('2021','2022','2023'))
                --AND LTRIM(ST.EBELN_IMAGE,'0')||'_'||LTRIM(ST.EBELP_IMAGE,'0') = LTRIM(SZ.EBELN,'0')||'_'||LTRIM(SZ.EBELP_STO,'0')
                AND LTRIM(ST.EBELN_IMAGE,'0')= LTRIM(SZ.EBELN,'0') AND LTRIM(ST.EBELP_IMAGE,'0')=LTRIM(SZ.EBELP_STO,'0')--更改部分
                )

Oracle-SQL程序优化案例二的更多相关文章

  1. Oracle SQL性能优化技巧大总结

    http://wenku.baidu.com/link?url=liS0_3fAyX2uXF5MAEQxMOj3YIY4UCcQM4gPfPzHfFcHBXuJTE8rANrwu6GXwdzbmvdV ...

  2. Oracle SQL 性能优化技巧

    Select语句完整的执行顺序: SQL Select语句完整的执行顺序: 1. from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将 ...

  3. 利用 Oracle EM 企业管理器 进行oracle SQL的优化(自动生成索引)

    利用 Oracle EM 企业管理器 进行oracle SQL的优化(自动生成索引) ##应用情景 项目中有大量的SQL,尤其是涉及到统计报表时,表关联比较多,当初开发建表时也没搞好索引关联的,上线后 ...

  4. ORACLE SQL性能优化(全)

    ORACLE SQL性能优化(全) http://wenku.baidu.com/view/b2aaba3887c24028915fc337.html

  5. SQL性能优化案例分析

    这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集 ...

  6. Oracle SQL语句优化34条

    非常好用的SQL语句优化34条 1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 dri ...

  7. Oracle SQL的优化

    SQL的优化应该从5个方面进行调整:1.去掉不必要的大型表的全表扫描2.缓存小型表的全表扫描3.检验优化索引的使用4.检验优化的连接技术5.尽可能减少执行计划的Cost SQL语句:是对数据库(数据) ...

  8. Oracle SQL性能优化系列

    1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.o ...

  9. ORACLE SQL性能优化汇总

    ORACLE SQL语句共享 Oracle SQL语句具备共享特性,为了不让ORACLE数据库重复解析相同的简单单表SQL语句,ORACLE在SGA系统共享区域内SBP共享池内存放的SQL语句将被所有 ...

随机推荐

  1. swagger 访问格式

    boot工程格式如下 http://10.166.10.169:8085/swagger-ui.html 非boot工程加个自己项目名 http://10.166.10.169:8085/xxx/sw ...

  2. django 的多对多关系

    django里自带的多对多表创建 其实就是两个多对一关系各自关联,在第三张表上 多对多的增加 add()可以传数值 例如 add(1)或数组 add(*[2,3]) 多对多反向操作 自己创建第三张表, ...

  3. [知乎]自己真是Know Nothing 历史上有哪些细思恐极的事件?

    作者:敖让链接:https://www.zhihu.com/question/38374479/answer/652432284来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  4. poj-1236.network of schools(强连通分量 + 图的入度出度)

    Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 27121   Accepted: 10 ...

  5. mock.js的运用

    一:概念 Mock.js是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试.提供了以下模拟功能: 根据数据模板生成模拟数据 模拟 Ajax 请求,生成并返回模拟数据 基于 H ...

  6. glVertexAttribPointer 顶点数据解析方式

    glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0); 第一个参数指定从索引0开始取数据,与顶点着色器中layout(location=0)对应. ...

  7. 基于TCP和UDP的socket

    为什么学习socket 你自己现在完全可以写一些小程序了,但是前面的学习和练习,我们写的代码都是在自己的电脑上运行的,虽然我们学过了模块引入,文件引入import等等,我可以在程序中获取到另一个文件的 ...

  8. MySQL 的自增 ID 用完了,怎么办?

      一.简述 在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值.一般情况下初始值都是从 0 开始,然后按照一定的步长增加.在 MySQL 中只要定义了这个数的字节长度,那么就会 ...

  9. 攻防世界--when_did_you_born5

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/24937e95ca4744818feebe82ab96902d 1.准备 root@l ...

  10. Jmeter学习总结

    学习内容: 1.用户定义的变量 作用:多个地方使用同一个值,且该值在不同的环境下不同,方便脚本在不同环境下运行时修改. 2.基本的HTTP请求,请求方式:get 3.传入参数为json 4.HTTP信 ...