商务服务
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/ , 查看更多   
最新新闻
二手手机淘宝店(二手手机淘宝店推荐)
  二手手机淘宝店:繁荣的市场与未来的趋势  随着科技的快速发展和消费者对电子产品需求的日益增长,二手手机市场逐渐崭露头
工作室手机(工作室手机ip解决办法)
  《工作室手机:科技与创新共舞的舞台》  随着科技的飞速发展,智能手机已经渗透到我们生活的方方面面,其中,工作室手机更
手机在线3G(手机在线3g是什么状态)
  《手机在线3G》:探索移动互联网的新纪元  随着科技的飞速发展,移动互联网已经成为我们日常生活中不可或缺的一部分。而在
台湾手机号码格式(台湾号码生成器)
  关于《台湾手机号码格式》的文章  台湾是中国的一个省份,其手机号码格式在中国大陆及全球范围内都有着独特的规律。了解台
大量手机号码(大量手机号码怎么保存到通讯录里面)
  关于《大量手机号码》的文章  在当今信息化社会,手机号码已经成为人们日常生活中不可或缺的一部分。随着通讯技术的发展,
如何取消手机标记(如何取消手机标记号码)
  如何取消手机标记  一、引言  在信息化社会,手机已经成为我们日常生活中不可或缺的一部分。然而,有时候我们的手机号码
全息手机(全息手机是什么意思)
  全息手机:未来通讯技术的崭新里程碑  随着科技的飞速发展,智能手机作为我们日常生活中不可或缺的一部分,正在经历前所未
手机html文件怎么打开(手机html文件怎么打开成网页)
  关于《手机HTML文件怎么打开》的文章  随着移动互联网的普及,越来越多的人开始接触和使用HTML文件。HTML文件是一种网页文
微博显示手机(微博显示手机已绑定多个账号)
  《微博显示手机功能:社交互动的新趋势》  在当今数字化时代,社交媒体已成为人们生活中不可或缺的一部分。微博作为其中的
什么手机可以开空调
  随着科技的飞速发展,智能手机已经成为了我们日常生活中不可或缺的一部分。除了通讯和娱乐功能外,现代的手机还具备了越来越