oracle trim 函数很慢,加trim以后执行超慢,执行计划求解
RT,该字段未建立索引,以下贴出SQL,及执行计划,不加trim走hash join,求解释!
----------------------语句如下,标红的字段加trim()
EXPLAIN PLAN FOR select a.楼盘id,
a.监测明细id,
a.报告日期,
a.广告位名称,
a.页面名称,
a.所属集团,
b.项目名称,
a.投放地域,
a.媒体,
a.对手,
c.province as 关联所在省,
c.city as 关联所在市
from t_hw_en a, t_hw_building b, t_crm_city c,t_crm_city d
where a.楼盘id = b.楼盘id
and b.所在城市uid = c.huid
and trim(a.投放地域) not in (trim(c.province), trim(c.city))
and b.项目类别 = '1'
and trim(a.媒体) not in ('XX', 'YY', 'ZZ')
and a.报告日期 >= trunc(sysdate - 7)
and not exists (select buildingid, ad, site
from dw_yidi_list g
where a.楼盘id = g.buildingid
and a.广告位名称 = g.ad
and a.媒体 = g.site)
AND trim(a.投放地域)=d.city(+)
AND (d.province,c.province) NOT IN (SELECT '海南','海南' FROM dual);
------------------------加trim()的执行计划
SELECT * FROM TABLE(dbms_xplan.display);
1 Plan hash value: 1048134721
2
3 -----------------------------------------------------------------------------------------------------------------
4 | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
5 -----------------------------------------------------------------------------------------------------------------
6 | 0 | SELECT STATEMENT | | 1 | 310 | 1948 (1)| 00:00:24 |
7 |* 1 | FILTER | | | | | |
8 | 2 | NESTED LOOPS OUTER | | 1 | 310 | 1946 (1)| 00:00:24 |
9 | 3 | NESTED LOOPS | | 1 | 294 | 1944 (1)| 00:00:24 |
10 | 4 | NESTED LOOPS | | 1 | 236 | 1942 (1)| 00:00:24 |
11 | 5 | NESTED LOOPS ANTI | | 1 | 183 | 1936 (1)| 00:00:24 |
12 |* 6 | TABLE ACCESS BY INDEX ROWID| T_HW_EN | 1 | 119 | 1935 (1)| 00:00:24 |
13 |* 7 | INDEX RANGE SCAN | INX_REPORTDETAIL_EN_THEDATE | 11943 | | 54 (0)| 00:00:01 |
14 |* 8 | INDEX RANGE SCAN | BID_AD_SITE | 1 | 64 | 1 (0)| 00:00:01 |
15 |* 9 | TABLE ACCESS FULL | T_CRM_CITY | 5 | 265 | 6 (0)| 00:00:01 |
16 |* 10 | TABLE ACCESS BY INDEX ROWID | T_HW_BUILDING | 1 | 58 | 2 (0)| 00:00:01 |
17 |* 11 | INDEX RANGE SCAN | BUILDING_ID_IDX | 1 | | 1 (0)| 00:00:01 |
18 | 12 | TABLE ACCESS BY INDEX ROWID | T_CRM_CITY | 1 | 16 | 2 (0)| 00:00:01 |
19 |* 13 | INDEX RANGE SCAN | CITY_IDX | 1 | | 1 (0)| 00:00:01 |
20 |* 14 | FILTER | | | | | |
21 | 15 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
22 -----------------------------------------------------------------------------------------------------------------
23
24 Predicate Information (identified by operation id):
25 ---------------------------------------------------
26
27 1 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM "SYS"."DUAL" "DUAL" WHERE LNNVL(:B1<>'海南') AND
28 LNNVL(:B2<>'海南')))
29 6 - filter("HWBID" IS NOT NULL AND TRIM("SITE")<>'XX' AND TRIM("SITE")<>'YY' AND TRIM("SITE")<>'ZZ'
30 )
31 7 - access("THEDATE">=TRUNC(SYSDATE@!-7))
32 8 - access("HWBID"="G"."BUILDINGID" AND "SITE"="G"."SITE" AND "PDPSNAME"="G"."AD")
33 9 - filter(TRIM("TOUFANG_AREA")<>TRIM("C"."PROVINCE") AND TRIM("TOUFANG_AREA")<>TRIM("C"."CITY"))
34 10 - filter("B"."所在城市UID" IS NOT NULL AND "B"."项目类别"=1 AND "B"."所在城市UID"="C"."HUID")
35 11 - access("HWBID"="B"."楼盘ID")
36 13 - access("D"."CITY"(+)=TRIM("TOUFANG_AREA"))
37 14 - filter(LNNVL(:B1<>'海南') AND LNNVL(:B2<>'海南'))
不加trim的执行计划
1 Plan hash value: 2634927421
2
3 -----------------------------------------------------------------------------------------------------------------
4 | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
5 -----------------------------------------------------------------------------------------------------------------
6 | 0 | SELECT STATEMENT | | 18 | 5580 | 2183 (1)| 00:00:27 |
7 |* 1 | FILTER | | | | | |
8 |* 2 | HASH JOIN ANTI | | 18 | 5580 | 2165 (1)| 00:00:26 |
9 |* 3 | HASH JOIN OUTER | | 18 | 4428 | 2160 (1)| 00:00:26 |
10 |* 4 | HASH JOIN | | 18 | 4140 | 2153 (1)| 00:00:26 |
11 | 5 | TABLE ACCESS FULL | T_CRM_CITY | 2176 | 112K| 6 (0)| 00:00:01 |
12 |* 6 | HASH JOIN | | 7200 | 1244K| 2146 (1)| 00:00:26 |
13 |* 7 | TABLE ACCESS BY INDEX ROWID| T_HW_EN | 7200 | 836K| 1935 (1)| 00:00:24 |
14 |* 8 | INDEX RANGE SCAN | INX_REPORTDETAIL_EN_THEDATE | 11943 | | 54 (0)| 00:00:01 |
15 |* 9 | TABLE ACCESS FULL | T_HW_BUILDING | 31328 | 1774K| 210 (2)| 00:00:03 |
16 | 10 | TABLE ACCESS FULL | T_CRM_CITY | 2176 | 34816 | 6 (0)| 00:00:01 |
17 |* 11 | INDEX FAST FULL SCAN | BID_AD_SITE | 1069 | 68416 | 5 (0)| 00:00:01 |
18 |* 12 | FILTER | | | | | |
19 | 13 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
20 -----------------------------------------------------------------------------------------------------------------
21
22 Predicate Information (identified by operation id):
23 ---------------------------------------------------
24
25 1 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM "SYS"."DUAL" "DUAL" WHERE LNNVL(:B1<>'海南') AND
26 LNNVL(:B2<>'海南')))
27 2 - access("HWBID"="G"."BUILDINGID" AND "PDPSNAME"="G"."AD" AND "SITE"="G"."SITE")
28 3 - access("D"."CITY"(+)=TRIM("TOUFANG_AREA"))
29 4 - access("B"."所在城市UID"="C"."HUID")
30 filter(TRIM("TOUFANG_AREA")<>TRIM("C"."PROVINCE") AND TRIM("TOUFANG_AREA")<>TRIM("C"."CITY"))
31 6 - access("HWBID"="B"."楼盘ID")
32 7 - filter("SITE"<>'XX' AND "HWBID" IS NOT NULL AND "SITE"<>'YY' AND "SITE"<>'ZZ'
33 )
34 8 - access("THEDATE">=TRUNC(SYSDATE@!-7))
35 9 - filter("B"."所在城市UID" IS NOT NULL AND "B"."项目类别"=1)
36 11 - filter("G"."SITE"<>'XX' AND "G"."SITE"<>'YY' AND "G"."SITE"<>'ZZ'
37)
38 12 - filter(LNNVL(:B1<>'海南') AND LNNVL(:B2<>'海南'))
相关文章:
oracle trim 函数很慢,加trim以后执行超慢,执行计划求解
RT,该字段未建立索引,以下贴出SQL,及执行计划,不加trim走hash join,求解释! ----------------------语句如下,标红的字段加trim() EXPLAIN PLAN FOR select a.楼盘id, a.监测明细id, a.报告日期, a.广告位名称, …...
【Leetcode Python】
偷某间房屋时,累积金额等于间隔前两间房的金额加上当前房的金额数;不偷时,累计金额就等于前一间房的金额数。 状态转移方程:dp[i] max(dp[i-2]nums[i], dp[i-1]) 并且注意错误点:dp[1]有两间房时,初始值为…...
Ubuntu系统的k8s常见的错误和解决的问题
K8s配置的时候出现的常见问题 Q1: master节点kubectl get nodes 出现的错误 或者 解决方法: cat <<EOF >> /root/.bashrc export KUBECONFIG/etc/kubernetes/admin.conf EOFsource /root/.bashrc重新执行 kubectl get nodes 记得需要查看一下自己的…...
Scala学习笔记7: 对象
目录 第七章 对象1- 单例对象2- 伴生对象3- 扩展类或特质的对象4- apply方法5- 应用程序对象6- 枚举end 第七章 对象 在Scala中, 对象(Obiect) 是一个单例实例, 类似于 Java中的单例模式 ; Scala中的对象使用 object 关键字定义, 它可以包含字段、方法、初始化代码和嵌套的类…...
【Linux】进程切换环境变量
目录 一.进程切换 1.进程特性 2.进程切换 1.进程切换的现象 2.如何实现 3.现实例子 2.环境变量 一.基本概念 二.常见环境变量 三.查询常见环境变量的方法 四.和环境变量相关的命令 五.环境变量表的组织方式 六.使用系统调用接口方式查询环境变量 1.getenv 2.反思 …...
嵌入式学习记录6.6(拷贝构造/友元函数/常成员函数)
一.拷贝构造函数和拷贝赋值函数 1.1拷贝构造函数功能,格式 拷贝构造函数是一种特殊的构造函数,用来将一个类对象给另一个类对象初始化使用的。 1> 用一个类对象给另一个类对象初始化时,会自动调用拷贝构造函数。 2> 当一个类对作为函数的实参&…...
宝塔 nginx 配置负载均衡 upstream
nginx 主配置文件加入 upstream myapp1 {server 192.168.124.101:5051;server 192.168.124.102:5052;server 192.168.124.111:5050;}站点配置文件中加入 location / {proxy_pass http://myapp1;}80端口映射到外网域名配置方法 加入红框中的代码 upstream myapp3 {server 192.16…...
idea 插件推荐
idea 插件推荐 RESTFul-Tool 接口搜索Show Comment 代码注释展示translation 翻译(注释翻译)MyBatisCodeHelperPro 日志封装sql xml跳转GitToolBox 展示GIT提交Jenkins Control idea jenkins 集成Gitmoji Plus: Commit Button GIT提交moji表情 RESTFul-Tool 接口搜索 https://…...
【Linux】Linux环境基础开发工具_5
文章目录 四、Linux环境基础开发工具Linux小程序---进度条git 未完待续 四、Linux环境基础开发工具 Linux小程序—进度条 上篇我们实现了一个简易的进度条,不过那仅仅是测试,接下来我们真正的正式实现一个进度条。 接着编写 processbar.c 文件 然…...
Java Web学习笔记15——DOM对象
DOM: 概念:Document Object Model: 文档对象模型 将标记语言的各个组成部分封装为对应的对象: Document: 整个文档对象 Element:元素对象 Attribute: 属性对象 Text:文本对象 Comment&a…...
中电联系列一:rocket手把手教你理解中电联协议!
分享《一套免费开源充电桩物联网系统,是可以立马拿去商用的!》 第1部分:总则 Charging and battery swap service information exchange for electric vehicles Part 1:General 前 言 T/CEC102—2016《 电动汽车充换电服务信息交换》分为四…...
(面试官问我微服务与naocs的使用我回答了如下,面试官让我回去等通知)微服务拆分与nacos的配置使用
微服务架构 正常的小项目就是所有的功能集成在一个模块中,这样代码之间不仅非常耦合,而且修改处理的时候也非常的麻烦,应对高并发时也不好处理,所以 我们可以使用微服务架构,对项目进行模块之间的拆分,每一…...
冯喜运:6.7今日黄金原油行情分析及独家操作策略
【黄金消息面分析】:周三(6月5日),金价回升逾1.2%,收盘报每盎司2,355.49美元,全面收复前一交易日的跌幅。周三当天前公布的美国民间就业数据弱于预期,增强了美联储将在今年晚些时候降息的预期&a…...
Android 蓝牙概述
一、什么是蓝牙 蓝牙是一种短距离(一般10m内)无线通信技术。蓝牙技术允许固定和移动设备在不需要电缆的情况下进行通信和数据传输。 “蓝牙”这名称来自10世纪的丹麦国王哈拉尔德(Harald Gormsson)的外号。出身海盗家庭的哈拉尔德统一了北欧四分五裂的国…...
Python3 笔记:字符串的 find()、rfind()、index()、rindex()
1、find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中…...
【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法
文章目录 前言 背景介绍 初始代码 优化代码 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 背景介绍 在一个嵌入式软件开发项目中,需要设计一个ECU节点的CAN网路数据发送,需求是在500k的通信波特率上&a…...
Python 设计模式(行为型)
文章目录 策略模式场景示例 迭代器模式场景示例 访问者模式场景示例 观察者模式场景示例 命令模式场景示例 模板方法模式场景示例 模板方法模式场景示例 事件驱动模式场景示例 责任链模式场景示例 中介者模式场景示例 状态模式场景示例 策略模式 策略模式(Strategy…...
电商API商品数据采集接口||助力电商企业采集商品大数据提高开发效率
提高开发效率:电商API接口允许不同的应用程序之间高效地进行交互,节省了大量的人力物力成本,使得开发者可以将更多时间和精力集中于自身的核心业务。 增加数据安全性:通过对数据进行安全加密,API接口实现了对数据的保护…...
Day34 事件聚合器实现消息过滤功能
当前章节,实现了消息事件过滤功能 在上一章节中,我们发现在Login视图页和Main视图页都使用了同一个事件聚合器,导致在Login视图页发送的消息也被Main 视图主页所接收,这违反了事件传递的意图和模块化设计的原则。为了解决这个问题,我们需要为事件聚合器引入消息过滤的…...
前端 JS 经典:Reflect 本质
1. 什么是 Reflect Reflect 可以调用对象的基本方法(内部方法),在 ES6 之前我们是没有任何方法去直接调用对象的基本方法的。只能间接调用,间接调用它又会给你做一些额外得事。 2. 对象的基本方法 什么是对象的基本方法呢&…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
