当前位置: 首页 > article >正文

Oracle中关于not in的替代方案

Oracle优化连接查询速度

    • 样例
    • exists模式
    • Left join模式

今天在使用dblink的时候,多表关联时发现条件中使用 not in 作为条件,会极大的影响查询速度,尤其是not in中的表数据量很大时,简直是一种灾难;经过翻阅资料,找到两种比较好用的方法:

  1. 采用exists模式
  2. 采用Left join模式

样例

select columns from tab1 
where column1 not in (select column1 from tab2);

exists模式

select columns from tab1 where 
not exists(select 1 from tab2 where tab1.column1 = tab2.column1);

exists返回true或false,具体的问题研究建议找一些讲的比较深入的资料,本人才疏学浅,解释不清

Left join模式

select columns from tab1 
left join tab2 on tab1.column1 = tab2.column1
where tab2.column1 is null

左连接,以左表为主,副表tab2中 关联不到的就自动赋值null
不理解可以查下左连接关联的资料画画图
注: is null 可能有坑,建议使用 nvl(trim(tab2.column1),‘自己指定值’) = ‘自己指定值’


http://www.kler.cn/news/293626.html

相关文章:

  • kafka及异步通知文章上下架
  • Jenkins构建CI/CD
  • VSC++: 括号对称比较
  • 使用Cskin时候 遇到按钮有默认阴影问题解决
  • Java语法全解析:掌握基本规则,打造稳固编程基础!
  • 企业级Ansible自动化运维项目案例:实战与技巧
  • 集成 Logrus 到 Gin:打造高效的 Go Web 日志系统
  • 【python因果推断库10】工具变量回归与使用 pymc 验证工具变量3
  • 音频基础学习四——声音的能量与分贝
  • 探索Mem0:下一代人工智能与机器学习内存管理基础设施(二)Mem0+Ollama 部署运行
  • .net中的内存管理和垃圾回收
  • CSS学习14[重点]--定位、边偏移、定位模式
  • linux-性能优化命令
  • Css:属性选择器、关系选择器及伪元素
  • 【项目二】C++高性能服务器开发——日志系统(日志器,日志级别,日志事件)
  • 2024高教杯数学建模B题思路
  • shell编程--正则表达式
  • SAP ABAP 程序迁移工具 SAPLINK ABAP GIT
  • Oracle 19c数据库:Windows详细安装与配置指南
  • 【操作系统】进程同步之共享内存
  • [dp]答疑
  • 0.ffmpeg面向对象oopc
  • 进程间通信与管道
  • 如何在Excel中创建一个VBA宏,并设置一个按钮来执行这个宏
  • AWS账号关闭后的影响:您需要知道的一切
  • AWTK HTML View 控件更新
  • 机器学习如何用于音频分析?
  • Unity中使用四元数限制旋转
  • 在目标检测模型中使用正样本和负样本组成的损失函数。
  • 区块链技术介绍