商务服务
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/ , 查看更多   
最新新闻
华为手机锁屏图片自动更换(华为手机锁屏图片自动更换怎么关闭)
  华为手机锁屏图片自动更换:便捷与个性化的完美结合  随着科技的快速发展,智能手机已经成为我们日常生活中不可或缺的一部
手机装系统(手机装系统软件)
  手机装系统:从基础到进阶的详细指南  随着科技的发展,智能手机已成为我们日常生活中不可或缺的一部分。有时候,我们的手
手机黄色视频网站(手机黄色视频网站搜索)
  关于《手机黄色视频网站》的文章  随着互联网的普及,手机成为了我们日常生活中必不可少的工具。然而,随着科技的发展,一
手机储存位置怎么设置(手机储存位置怎么设置权限)
  关于《手机储存位置怎么设置》的文章  随着智能手机的普及,手机储存空间成为我们日常生活中关注的重点之一。合理地设置手
oppo手机怎样刷机(OPPO手机怎样刷机清除密码)
  OPPO手机怎样刷机  随着科技的不断发展,智能手机已经成为我们日常生活中不可或缺的一部分。而OPPO手机因其出色的性能和精
手机分辨率怎么看(手机分辨率怎么看vivo)
  《手机分辨率怎么看》  随着智能手机的普及,我们越来越关注手机的各项参数,其中手机分辨率是一个重要的指标。那么,如何
qq邮箱在哪里找手机(怎么设置手机邮箱)
  《QQ邮箱在哪里找手机》  随着移动互联网的发展,手机已经成为我们日常生活中不可或缺的一部分。而QQ邮箱作为我们常用的邮
屏蔽手机广告(屏蔽手机广告弹窗)
  屏蔽手机广告:迈向清爽的数字生活  随着智能手机的普及,我们的生活越来越离不开这些小巧便捷的电子设备。然而,随之而来
qq斗地主手机版(qq斗地主手机版官方下载单机)
  《QQ斗地主手机版》:一款深受喜爱的手机棋牌游戏  在当今数字化时代,手机游戏已成为人们休闲娱乐的重要方式之一。在众多
安全中心手机版下载(安全中心最新版下载安装)
  关于《安全中心手机版下载》的文章  随着移动互联网的飞速发展,我们的生活越来越离不开手机。为了保障我们的手机安全和隐