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<>'海南'))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Threejs 文字绘制性能优化

一、整体思路 不用TextGeometry。文字多的时候性能太差 收集场景中需要绘制的所有文字信息将所有的文字信息都绘制在一个canvas上并维护好&#xff0c;每个文字信息在canvas上的位置信息&#xff0c;包括&#xff0c;文字绘制在canvas上的第几行、在当前行的位置、文字长度等…

代码随想录算法训练营第十四天| 104.二叉树的最大深度 、 111.二叉树的最小深度、 222.完全二叉树的节点个数

104.二叉树的最大深度 题目链接&#xff1a;二叉树的最大深度 文档讲解&#xff1a;代码随想录 状态&#xff1a;so easy 思路&#xff1a;左子树和右子树中取最大深度&#xff0c;依次往下递归 递归解法&#xff1a; public int maxDepth(TreeNode root) {if (root null) {r…

【高校科研前沿】新疆生地所陈亚宁研究员团队在GeoSus发文:在1.5°C和2°C全球升温情景下,中亚地区暴露于极端降水的人口增加

目录 文章简介 1.研究内容 2.相关图件 3.文章引用 文章简介 论文名称&#xff1a;Increased population exposures to extreme precipitation in Central Asia under 1.5 ◦C and 2 ◦C global warming scenarios&#xff08;在1.5C和2C全球变暖情景下&#xff0c;中亚地区…

伽马校正技术在AI绘画中的作用

随着人工智能技术的飞速发展&#xff0c;AI绘画已经成为了艺术创作领域的一股新兴力量。在这个数字化时代&#xff0c;计算机图形学和机器学习的结合为我们带来了前所未有的创作工具。然而&#xff0c;为了实现更加真实和自然的色彩表现&#xff0c;伽马校正技术在其中扮演着至…

Vue:路由管理vue-router

Vue Router 是 Vue 官方的客户端路由解决方案&#xff0c;可以通过配置路由来告诉 Vue Router 为每个 URL 路径显示哪些组件。 1. Vue3 中使用 vue-router 安装 npm install vue-router4创建路由配置文件 新建 router/index.js 文件按用来统一管理路由配置。 // router/ind…

每天CTF小练(6.6)--基础异或

题目&#xff1a;[HNCTF 2022 Week1]XXXOOORRR from flag import flag from Crypto.Util.number import * import osrandBytes [bytes_to_long(os.urandom(64)) for _ in range(3)] m bytes_to_long(flag)print(fa {randBytes[0]}) print(fb {randBytes[0] ^ randBytes[1]…

DP读书:如何使用badge?(开源项目下的标咋用)

最近在冲论坛&#xff0c;很少更一些内容了。但遇到了一个真的有趣的&#xff1a; 开源项目下&#xff0c;蓝蓝绿绿的标是怎么用的呢&#xff1f; 这是我的主页Readme&#xff0c;在看一些NXP的主仓时&#xff0c;突然发现没有这个玩&#xff0c;就自己整了个 再比如我的CSDN专…

Vivado 设置关联使用第三方仿真软件 Modelsim

目录 1.前言2.Vivado 设置关联使用第三方仿真软件 Modelsim 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 Vivado 软件自带有仿真功能,该功能使用还是比较方便的,初学者可以直接使用自带的仿真功能。 Modelsim仿真工具是Model公司开发的。它支持Verilog、VHDL以及他…

springboot+vue+mybatis房屋租贷系统+PPT+论文+讲解+售后

本论文系统地描绘了整个网上房屋租赁系统的设计与实现&#xff0c;主要实现的功能有以下几点&#xff1a;管理员&#xff1b;首页、个人中心、房屋类型管理、房屋租赁管理、会员管理、订单信息管理、合同信息管理、退房评价管理、管理员管理&#xff0c;系统管理&#xff0c;前…

【JavaScript脚本宇宙】瞬息万变:探索实时Web应用的JavaScript库

鸟瞰实时Web开发&#xff1a;JavaScript库大比拼 前言 随着Web应用程序的发展&#xff0c;实时通讯已成为一个重要的需求。本篇文章将探索六个关键的JavaScript库&#xff0c;这些库为我们提供助力&#xff0c;使得实时Web应用程序的创建成为可能。 欢迎订阅专栏&#xff1a;…

分布式ID生成方式

1.UUID uuid方式存在问题&#xff1a;占用字节数比较大&#xff1b;ID比较随机&#xff0c;作为MySQL主键写入库时&#xff0c;为了保证顺序性将导致BTree节点分裂比较频繁&#xff0c;影响IO性能。 2.数据库方式 步长step 3&#xff0c;即为机器的数量。 第一台机器&#x…

鸿蒙开发 一 (三)、ArkTS开发实战上

ArkTS 从 TypeScript 优化而来&#xff0c; 但有些用法又不太一样&#xff0c; 在开发中&#xff0c; 经常会出现一些报错提示&#xff0c;下面我们也汇总一些常见错误&#xff0c;捡一些常见的整理一下 Promise 的用法&#xff1a; //TypeScript 写法&#xff1a;private load…

2024 Q1企业级SSD市场暴涨,国产努力追赶!

在2024年第一季度&#xff0c;由于对高容量存储需求的激增&#xff0c;企业级固态硬盘&#xff08;SSD&#xff09;市场的收入实现了显著增长&#xff0c;达到了37.58亿美元&#xff0c;与上一季度相比增长了62.9%。这一增长主要得益于供应商减产导致的高容量订单需求未得到满足…

大模型高级 RAG 检索策略之混合检索

古人云&#xff1a;兼听则明&#xff0c;偏信则暗&#xff0c;意思是要同时听取各方面的意见&#xff0c;才能正确认识事物&#xff0c;只相信单方面的话&#xff0c;必然会犯片面性的错误。 在 RAG&#xff08;Retrieval Augmented Generation&#xff09;应用中也是如此&…

LeetCode 算法:合并区间c++

原题链接&#x1f517;&#xff1a;合并区间 难度&#xff1a;中等⭐️⭐️ 题目 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰…

Nginx编译安装+nginx模块

一、I/O模型 处理高并发的时候用 1.1I/O模型简介 同步/异步&#xff08;消息反馈机制&#xff09;&#xff1a;关注的是消息通信机制&#xff0c;即调用者在等待一件事情的处理结果时&#xff0c;被调用者是否提供完成状态的通知。 同步&#xff1a;synchronous&#xff0c;…

java第二十课 —— 面向对象习题

类与对象练习题 编写类 A01&#xff0c;定义方法 max&#xff0c;实现求某个 double 数组的最大值&#xff0c;并返回。 public class Chapter7{public static void main(String[] args){A01 m new A01();double[] doubleArray null;Double res m.max(doubleArray);if(res !…

探索Linux中的`tree`命令:目录结构的可视化利器

探索Linux中的tree命令&#xff1a;目录结构的可视化利器 在Linux系统中&#xff0c;管理文件和目录结构是一项日常任务。当我们需要快速查看目录的层次结构时&#xff0c;tree命令无疑是一个强大而直观的工具。本文将详细介绍tree命令的功能、用法以及一些实用的选项。 一、…

Mysql8安装教程与配置(超详细图文)

MySQL 8.0 是 MySQL 数据库的一个重大更新版本&#xff0c;它引入了许多新特性和改进&#xff0c;旨在提高性能、安全性和易用性。 1.下载MySQL 安装包 注&#xff1a;本文使用的是压缩版进行安装。 &#xff08;1&#xff09;从网盘下载安装文件 点击此处直接下载 &#…

JavaWeb3 Ajax+Axios+Element+Nginx部署

Ajax 异步JS和XML 1.数据交换&#xff1a;给服务器发送请求&#xff0c;并获取服务器相应的数据 2.异步交互&#xff1a;在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部分网页 同步与异步 原生Ajax <!DOCTYPE html> <html> <body><…