商务服务
join实例 oracle_【云趣科技】Oracle优化案例-用left join代替反连接 not in not exists(十)...
2024-11-19 03:07

sql如下

join实例 oracle_【云趣科技】Oracle优化案例-用left join代替反连接 not in not exists(十)...

反链接

SELECt R.ORDER_NO

FROM KKTRIBE_CORE_base.ITEM_ORDER R

WHERe R.ALLOCATE_COMMISSION_STATUS 'FINISH'

AND R.ORDER_NO NOT IN (SELECt ORDER_NO FROM (SELECt B.ORDER_NO, COUNT(*) COUNT_NUM

FROM KKTRIBE_CORE_base.ORDER_ALLOCATE_COM_FUND_BILL B

WHERe B.STATUS NOT IN ('FINISH')

GROUP BY B.ORDER_NO) T

WHERe T.COUNT_NUM != 0);

执行计划

可以一眼定位问题,至于优化器选取这样的方式显然不好啊,一般not in,not exists中的子查询有group by,union all,union,start with connect by都会产生filter,但是此sql的group by外面还一层,不应该,那么我们改sql好了。

改成SQL如下

SELECt R.ORDER_NO

FROM KKTRIBE_CORE_base.ITEM_ORDER R

LEFT JOIN (SELECt ORDER_NO

FROM (SELECt B.ORDER_NO, COUNT(*) COUNT_NUM

FROM KKTRIBE_CORE_base.ORDER_ALLOCATE_COM_FUND_BILL B

WHERe B.STATUS NOT IN ('FINISH')

GROUP BY B.ORDER_NO) T

WHERe T.COUNT_NUM != 0) X

ON R.ORDER_NO = X.ORDER_NO

WHERe R.ALLOCATE_COMMISSION_STATUS 'READY'

AND X.ORDER_NO IS NULL;

执行计划

sql从10分钟到1秒不到,秒出

还有一个例子如下

SELECt *

FROM (SELECt ID,

GROUP_ID,

MESSAGE_SEQUENCE,

GMT_CREATE,

GMT_MODIFIED,

SYSTEM_DELETED

FROM IM_CORE_base.IMC_GROUP_MESSAGE GM

WHERe GM.SYSTEM_DELETeD = 0

AND NOT EXISTS

(SELECT 1

FROM (SELECt MB.ID

FROM IM_CORE_base.IMC_MESSAGE_TYPE_CONFIG MTC,

IM_CORE_base.IMC_MESSAGE_base        MB

WHERe MTC.TYPE_CODE IN

('GROUP_MESSAGE_DELETe_TEXT', 'IMAGE_VIEWABLE')

AND MB.TYPE_ID = MTC.ID) TMP

WHERe TMP.ID = GM.ID)

AND GROUP_ID '10064002684129898100120010059153'

AND MESSAGE_SEQUENCE 

ORDER BY MESSAGE_SEQUENCE DESC)

WHERe ROWNUM <= 22;

SELECT *

FROM (SELECt *

FROM (SELECt ID,

GROUP_ID,

MESSAGE_SEQUENCE,

GMT_CREATE,

GMT_MODIFIED,

SYSTEM_DELETED

FROM IM_CORE_base.IMC_GROUP_MESSAGE GM

WHERe GM.SYSTEM_DELETeD = 0

AND GROUP_ID '10064002684129898100120010059153'

AND MESSAGE_SEQUENCE 

ORDER BY MESSAGE_SEQUENCE DESC) X

LEFT JOIN (SELECT MB.ID

FROM IM_CORE_base.IMC_MESSAGE_TYPE_CONFIG MTC,

IM_CORE_base.IMC_MESSAGE_base        MB

WHERe MTC.TYPE_CODE IN

('GROUP_MESSAGE_DELETE_TEXT', 'IMAGE_VIEWABLE')

AND MB.TYPE_ID = MTC.ID) TMP

ON TMP.ID = X.ID

WHERe TMP.ID IS NULL)

WHERe ROWNUM <= 22;

|  作者简介

姚崇·云趣科技高级数据库技术专家

    以上就是本篇文章【join实例 oracle_【云趣科技】Oracle优化案例-用left join代替反连接 not in not exists(十)...】的全部内容了,欢迎阅览 ! 文章地址:http://sicmodule.glev.cn/news/10125.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 歌乐夫资讯移动站 http://sicmodule.glev.cn/mobile/ , 查看更多   
最新新闻
宇树科技能否复刻大疆成功之路,成为科技新星?王兴兴的创业历程
你可能听过很多关于科技大佬的传奇故事,天才少年、名校毕业、硅谷精英……但今天要讲的这位,却是个彻头彻尾的“学渣”,他用自
“来客兄弟”AI获客:解锁实体门店流量密码
在AI技术日新月异的今天,各行各业都在经历着前所未有的变革。对于实体门店而言,行业竞争加剧、经营成本高昂以及消费者购物习惯
如何轻松掌握AI在线问答?试试这些实用工具
现在,人工智能技术已经渗透到我们生活的方方面面,其中自然也包括了AI在线问答。要更好地利用这一技术,我们可以尝试一些实用的
一次性搞懂什么是AIGC!(一篇文章22个基本概念)
全新的时代,AIGC(Artificial Intelligence Generative Content,即人工智能生成内容)正在重新塑造着
3 个在微信使用 DeepSeek 方法,建议收藏!
昨天带大家体验了微信最新的 AI 搜索功能。相信都被 微信 + DeepSeek R1 这组王炸组合惊艳到,可是目前该功能还在灰度测试中。评
京东pop商家入驻流程是什么?如何确保流程正确?
京东pop商家入驻流程是什么?想要入驻京东的商家数量一直都在上升当中,而入驻当中的流程却有很多商家还不是很熟悉,下面就来告
过年不想被催婚?这些 DeepSeek 给出的高情商技巧可能你用得上
过年最头疼的事情是什么? 走亲戚。 好在,亲戚的问题是生硬的,但我们的回答可以是柔软的;亲戚的关心是直白的,但我们的回应也
京东也能订外卖了??
对标美团而言,秒送几乎囊括了美团的所有主要业务。而秒送之外,“首页”的本地生活、京东旅行等板块还覆盖了火车票、机票、景区
《名侦探柯南》里重要的12个人物,你都知道吗?
在《名侦探柯南》中,柯南原本的身份是高中生侦探工藤新一,在一次偶然事件中目睹了黑衣组织的交易过程,结果被组织成员灌下毒药
疯了!自从DeepSeek出来,我就没过一天正常日子
解放周末!用AI写周报又被老板夸了!点击这里,一键生成周报总结,无脑直接抄 → https://ai.sohu.com/pc/textHome?_trans_=0300