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

OR+DBLINK的关联SQL优化思路

前言

  最近遇到个10来个OR条件关联的复杂SQL再加DBlink,明显感觉到Oracle 都关联懵了,2-3个小时都没出结果。感受一下SQL的魅力吧,此次测试旨在拓宽优化思路。

性能SQL

  • 各表数据量:已做脱敏处理
INFO        -- 4142
EXT         -- 4142
CRM_INFO    -- 4142
ACCT_ORDER  -- 793841
NAME_LIST   -- 159900
  • OR条件仅展示部份。
select
  a.ID as nameListId,a.UNIQUE_ID,a.NAME,a.COMMENTS,a.externale,a.TAG,b.INFO_ID,b.STATUS,b.AAM_ID
FROM (
  SELECT id,unique_id,name,comments,externale,tag
  FROM pay.name_list WHERE SOURCE = '0001' 
  AND TAG in ('card','merchant','RECNAME')
  AND TYPE = '01'
) a
JOIN (
  SELECT 
      INFO.ID INFO_ID, 
      INFO.NAME INFO_NAME,
      CASE
          WHEN SEL.NO_CIPHER IS NOT NULL AND SEL.FACTOR IS NOT NULL
          THEN SM4@twodb(SEL.NO_CIPHER, SEL.FACTOR) 
      ELSE NULL END AS SEL_NO,
      CASE 
         WHEN INFO.STATUS = 'A' AND INFO.STATUS_OUT = 'A' THEN 'A'
         WHEN INFO.STATUS = 'A' AND INFO.STATUS_OUT = 'B' THEN 'C'
         WHEN INFO.STATUS = 'B' AND INFO.STATUS_OUT = 'A' THEN 'B'
         WHEN INFO.STATUS = 'B' AND INFO.STATUS_OUT = 'B' THEN 'D'
      END AS STATUS, 
      EXT.LICENSE_NO, 
      AAM.ID AAM_ID
  FROM INFO@twodb INFO
  JOIN EXT@twodb EXT ON INFO.ID = EXT.INFO_ID
  JOIN CRM_INFO@twodb SEL ON INFO.ID = SEL.INFO_ID
  JOIN ACCT_ORDER@twodb AAM ON AAM.id = INFO.id 
  WHERE INFO.STATUS IN ('A', 'B')
) b
ON DECODE(a.tag,'merchant',a.unique_id,null) = b.INFO_ID 
OR DECODE(a.tag,'RECNAME',a.unique_id,null) = b.INFO_NAME 
OR decode(a.tag,'card',a.unique_id,null) = b.SEL_NO 
OR DECODE(a.tag,'midno',a.unique_id,null) = b.LICENSE_NO ;

执行计划

image.png

性能问题分析

  • 问题1、Elapsed:00:0
http://www.dtcms.com/a/339864.html

相关文章:

  • Transformer中的编码器和解码器是什么?
  • LLMs之RL之GSPO:《Group Sequence Policy Optimization》翻译与解读
  • 高校数字化转型实战:破解数据孤岛、构建智能指标体系与AI落地路径
  • 数据清理后续
  • 低功耗模式
  • Java配置文件
  • Consul- acl机制!
  • 01-Docker-简介、安装与使用
  • Linux学习-通信(信号,共享内存)
  • C++实现教务管理系统,文件操作账户密码登录(附源码)
  • gitlab、jenkins等应用集成ldap
  • AI学习之DeepSeek本地化部署
  • 数据结构-栈和队列
  • Go语言并发编程 ----- sync包
  • Js逆向案例 Scrape Spa2(Webpack自吐)
  • 2020年EAAI SCI1区TOP,基于ORPFOA算法的多无人机在线变化任务路径规划,深度解析+性能实测
  • RAG 面试题(实时更新补充)
  • 基于SpringBoot的篮球馆预约管理系统【2026最新】
  • 西门子博途DB数据块的详细用法以及如何与威纶通触摸屏变量关联
  • 中兴B862AV3.2M/B862AV3.1-M2 晨星mso9385_安卓9_原厂备份救砖包
  • 机械原理的齿轮怎么学?
  • 【网络运维】Playbook部署文件:Files模块库&JINJA2模板
  • 根据Wireshark捕获数据包时间和长度绘制电脑发射信号波形
  • 图论——Bellman-Ford和SPFA
  • 《AI 与人类创造力:是替代者还是 “超级协作者”?》​
  • 切换Font Awesome 7 后图标变形解决
  • C++编程学习(第25天)
  • 1A AMOLED显示屏电源芯片BCT1838
  • UE5多人MOBA+GAS 50、英雄选择(一)
  • 福彩双色球第2025095期综合分析