商务服务
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/ , 查看更多   
最新新闻
如何在本地部署DeepSeek:新手向超详细教程
你是不是也想在自己的电脑上运行AI助手,而不用担心网络延迟和隐私问题?今天,我们就来手把手教你如何本地化
如何用AI写作?这4款工具一学就会
如何用AI写作?AI写作不仅丰富了我们的创作手段,还显著提升了写作效率。它能够帮助我们快速生成大量高质量的文本内容,无论是撰
AI代写说明书-学习Ai代写笔记
避坑指南:1、注意Ai输出的内容有Ai味,不能直接提供给客户2、不能陷入低时价的黑奴单,创作门槛高,时价越高,用Ai是为了节省时
ai智能拓客系统 - 快商通
ai智能拓客系统是一款能够帮助企业自动获取客户联系方式资源的营销辅助工具,支持接入各个搜索引擎平台ocpc与客户进行智能对话和
关于吃禁果的回复,DeepSeek确实不懂情感
收到一位同学的私信:这样的私信一般是不回复的,因为一是高中生不在研究范围里;二是接触的样本太少,缺乏经验。但是又一想不是
用爱在黑暗里凿出光的模样
      前一段时间在网上有看到关于DeepSeek的视频,那个时候不知道它是什么,也没有在意。直到昨晚我看到一个小姐姐的视频,
王兴兴谈AI机器人:专注与创新推动技术突破
解放周末!用AI写周报又被老板夸了!点击这里,一键生成周报总结,无脑直接抄 → https://ai.sohu.com/pc/textHome?_trans_=0300
利用DeepSeek,高效完成SCI论文撰写的全攻略
随着科研领域的不断发展,越来越多的研究者开始寻求高效撰写SCI论文的新工具。在这一背景下,DeepSeek作为一种先进的学术辅助工
DeepSeek安装教程:小白也能轻松入门,快速体验AI推理能力
在人工智能的快速发展中,DeepSeek作为新兴的AI工具,受到了广泛关注。近日,关于DeepSeek的安装与部署教程纷纷涌现,尤其是面向
推荐目前个人认为最好的文字和图片AI
因为自己写东西和日常工作运营的需求,我一直对各种小工具都比较感兴趣,也一直在努力尝试各种类型的AI工具。一、文字类:Kimi首