商务服务
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/ , 查看更多   
最新新闻
李子柒重返“顶流”,再证“内容为王”不变法则
  11月12日下午,停更了三年的田园生活博主李子柒在毫无预告的情况下,相继在短视频平台更新了《雕漆隐花,雕出紫气东来》和《
2025蛇年适合生宝宝么
2025年的天干为乙,地支为巳,乙木为阴木,巳火为阴火。天干乙木生地支巳火,形成了木火相生的格局,这种命理组合意味着这一年出
这一次,抖音对李子柒出手了
1217天不见,李子柒归来仍顶流。三十多个热搜,破亿播放量,遮天蔽日的弹幕,一日700万的涨粉,李子柒还是当年那个势不可挡的李
李子柒复出:四年等待带来的新旅程,粉丝们的期待终于实现!
近日,李子柒在多个社交平台上发布了令人兴奋的消息:她宣布复出,并更新了一段视频。在她的微博中,李子柒饱含深情地写道:“这
李子柒复出!三年沉寂后再度引发热议,背后隐藏哪些故事?
在中国网络文化的舞台上,有些名字总是能令人印象深刻,其中李子柒无疑是最具标志性的代表之一。2024年11月12日,这位曾经的乡村
2024年创业小项目个人创业
许多朋友向我反映说他们还是对2024年创业小项目个人创业不够了解,想做却不知道要准备些什么,今天我就给大家详细讲讲。2024年创
适合打工族的业余兼职,这五种选择让你工作之余也能赚钱
网络任务兼职是一种灵活且便捷的赚钱方式,它借助互联网平台,让你可以在任何有网络连接的地方开展工作。一、旺财宝盒旺财宝盒为
停更1000天,李子柒复出真相被戳破
网红常有,子柒难寻。封面 I 李子柒微博作者 I 李东阳报道 I 李东阳朋友圈互联网世界的网红向来如过江之鲫,来的快,去的更快。
消失三年,复出还是顶流,李子柒为何无法替代?
停更三年后,昨日,李子柒再度更新。这一更新再度称霸互联网。微博上单个视频拿下了 1.3 亿观看, 176 万点赞的数据,转发跟评论
2025年7月分开火吉日 2025年七月吉日一览表
了解你想关注的是“火吉日”的哪些方面?例如是关于日期选择、传统习俗,还是如何利用这些信息来优化决策?传统文化中,选择吉日