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

oracle执行计划中,同一条语句块,在不同情况下执行计划不一样问题。子查询,union 导致索引失效。

场景:
需要获取部分数据集(视图)的业务时间最大值,希望只通过一条语句获取多个的最大值。
则使用select (视图1业务时间最大值),(视图2业务时间最大值),(视图3业务时间最大值) from dual
程序执行过程中,发现语句执行较慢,则进行sql调优。

使用子方式查询,获取最大值

子查询是一个嵌套在另一个查询语句中的查询语句。它可以被视为一个查询被包含在另一个查询中的过滤条件,可以在查询语句中的WHERE,FROM或SELECT子句中使用。子查询可以返回单个值、单个行或多个行,并且可以被用来解决复杂性问题或减少查询中的代码复杂性。

select (SELECT max(SJGXSJ) TIME_MAXFROM v_yewu1where SJGXSJ >= sysdate - 1and SJGXSJ < sysdate) AS TIME1,NULL AS TIME2,NULL AS TIME3,NULL AS TIME4,NULL AS TIME5from dualwhere 1 = 1

在这里插入图片描述
如图,效果很不理想。
如果是拿子查询的语句出来,单独查询,就会走时间索引,就很快。
在这里插入图片描述

使用union方式查询,获取最大值

在这里插入图片描述
改成union空表
在这里插入图片描述
union是合并两个查询的,怎么也会导致执行计划发生改变呢,第一时间想到的是union中去重导致的。然后我吧union 改成union all结果,执行计划还是很糟糕。
在这里插入图片描述

使用join方式查询,获取最大值

最后,把语句改成关联的形式,总算是满足了实际的业务需要。

select t1.TIME_MAX AS TIME1,t2.TIME_MAX AS TIME2,NULL        AS TIME3,NULL        AS TIME4,NULL        AS TIME5from (SELECT max(SJGXSJ) TIME_MAXFROM  v_yuwu1where SJGXSJ >= sysdate - 1and SJGXSJ < sysdate) t1,(SELECT max(SJGXSJ) TIME_MAXFROM v_yuwu2where SJGXSJ >= sysdate - 1and SJGXSJ < sysdate) t2awhere 1 = 1

在这里插入图片描述

总结

sql执行过程中,视图查询,使用子查询、union或者多层视图嵌套,都可能会导致执行计划发生改变,多层视图嵌套结构的语句,where条件位置等都有可能导致执行计划发生改变,索引不生效的问题,这些应当尽量避免。sql调优过程中也可以使用些hint进行优化。使用视图查询,还是有明显的劣势,条件允许,尽量使用直接的sql语句查询,并且避免sql里面用到视图。

相关文章:

oracle执行计划中,同一条语句块,在不同情况下执行计划不一样问题。子查询,union 导致索引失效。

场景&#xff1a; 需要获取部分数据集(视图)的业务时间最大值&#xff0c;希望只通过一条语句获取多个的最大值。 则使用select (视图1业务时间最大值),(视图2业务时间最大值),(视图3业务时间最大值) from dual 程序执行过程中&#xff0c;发现语句执行较慢&#xff0c;则进行s…...

【新的小主机】向日葵远程控制ubuntu

向日葵远程控制ubuntu 一、简介二、问题及解决方法2.1 向日葵远程连接Ubuntu22主机黑屏&#xff1f;2.2 Ubuntu如何向日葵开机自启&#xff1f;2.3 无显示器情况下&#xff0c;windows远程桌面连接Ubuntu? 三、待续。。。 一、简介 系统&#xff1a;ubuntu22.04.3 目的&#…...

在Android studio高版本上使用低版本的Github项目库报错未能解析:Landroid/support/v4/app/FrageActivity;

我在我的项目中有一个导包: // 基础依赖包&#xff0c;必须要依赖 沉浸式狀態欄 implementation com.gyf.immersionbar:immersionbar:3.0.0 但是我的as版本比较高,我使用这个导包里面的方法会直接报错: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/suppor…...

自动混剪多段视频、合并音频、添加文案的技巧分享

在如今的社交媒体时代&#xff0c;视频的重要性越来越被人们所重视。许多人喜欢记录生活中的美好瞬间&#xff0c;并将其制作成视频分享给朋友和家人。然而&#xff0c;对于那些拍摄了大量视频的人来说&#xff0c;一个一个地进行剪辑和合并可能是一项令人头痛的任务。但是&…...

学习笔记——BSGS

众所周知&#xff0c;北上广深是中国非常一线的城市&#xff0c;北京是首都&#xff0c;地处…… 正片开始&#xff01; 一、BSGS基础算法 实现目标&#xff1a; A x ≡ B ( m o d P ) , ( gcd ⁡ ( P , A ) 1 ) A^x\equiv B(\mod P),(\gcd(P,A)1) Ax≡B(modP),(gcd(P,A)1)…...

【AI视野·今日NLP 自然语言处理论文速览 第四十期】Mon, 25 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 25 Sep 2023 Totally 46 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers ReConcile: Round-Table Conference Improves Reasoning via Consensus among Diverse LLMs Authors Justin C…...

Linux C/C++下收集指定域名的子域名信息(类似dnsmap实现)

我们知道dnsmap是一个工具&#xff0c;主要用于收集指定域名的子域名信息。它对于渗透测试人员在基础结构安全评估的信息收集和枚举阶段非常有用&#xff0c;可以帮助他们发现目标公司的IP网络地址段、域名等信息。 dnsmap的操作原理 dnsmap&#xff08;DNS Mapping&#xff…...

linux-定时任务

目录 一、crond命令 1、什么是计划任务 2、crond服务的概念 3、crontab 二、at命令 1、at任务的概念 三、邮件服务 1、概念 2、启动postfix 四、mailx命令 1、三个概念&#xff1a; 2、交互式发邮件 3、非交互式发邮件 四、cron定时任务实践 1、系统定时任务配置…...

在Spring Boot项目中使用Redisson

在Spring Boot项目中使用Redisson Redisson简介 Redisson官网仓库 Redisson中文文档 Redission是一个基于Java的分布式缓存和分布式任务调度框架&#xff0c;用于处理分布式系统中的缓存和任务队列。它是一个开源项目&#xff0c;旨在简化分布式系统的开发和管理。 以下是…...

JavaScript 函数柯里化

&#x1f3b6;什么是柯里化 柯里化&#xff08;Currying&#xff09;是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数&#xff0c;并且返回接受余下的参数且返回结果的新函数的技术。 &#x1f3a1;简单的函数柯里化的实现 // ------------- 原函数…...

springboot实现ACL+RBAC权限体系

本文基于web系统的权限控制非常重要的前提下&#xff0c;从ALC和RBAC权限控制两个方面&#xff0c;介绍如何在springboot项目中实现一个完整的权限体系。 源码下载 &#xff1a;https://gitee.com/skyblue0678/springboot-demo 序章 一个后台管理系统&#xff0c;基本都有一套…...

C++20协程示例

C20协程示例 认识协程 在C中&#xff0c;协程就是一个可以暂停和恢复的函数。 包含co_wait、co_yield、co_return关键字的都可以叫协程。 看一个例子&#xff1a; MyCoroGenerator<int> testFunc(int n) {std::cout << "Begin testFunc" << s…...

【Verilog 教程】6.2Verilog任务

关键词&#xff1a;任务 任务与函数的区别 和函数一样&#xff0c;任务&#xff08;task&#xff09;可以用来描述共同的代码段&#xff0c;并在模块内任意位置被调用&#xff0c;让代码更加的直观易读。函数一般用于组合逻辑的各种转换和计算&#xff0c;而任务更像一个过程&a…...

Spring修炼之路(1)基础入门

一、简介 1.1Spring概述 Spring框架是一个轻量级的Java开发框架&#xff0c;它提供了一系列底层容器和基础设施&#xff0c;并可以和大量常用的开源框架无缝集成&#xff0c;可以说是开发Java EE应用程序的必备。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器&…...

GANs学习记录

GAN 基于GAN的研究识别相关不同背景目标图像 可以用Augmentation2021.3.15 基于GAN的研究 是通过GAN 进行图像重建&#xff0c;恢复细节&#xff0c;去模糊&#xff0c;提高图像质量&#xff0c;图像还原&#xff0c;去噪等等。 识别相关 一种基于生成对抗网络的训练样本扩充…...

Flink-CDC——MySQL、SqlSqlServer、Oracle、达梦等数据库开启日志方法

目录 1. 前言 2. 数据源安装与配置 2.1 MySQL 2.1.1 安装 2.1.2 CDC 配置 2.2 Postgresql 2.2.1 安装 2.2.2 CDC 配置 2.3 Oracle 2.3.1 安装 2.3.2 CDC 配置 2.4 SQLServer 2.4.1 安装 2.4.2 CDC 配置 2.5达梦 2.4.1安装 2.4.2CDC配置 3. 验证 3.1 Flink版…...

linux设置tomcat redis开机自启动

设置Tomcat自启动 1.修改 /etc/rc.d/rc.local 文件 [rootiowZ]# vim /etc/rc.d/rc.local在/etc/rc.d/rc.local文件最后加上&#xff1a; export JAVA_HOME/usr/local/jdk /usr/local/apache-tomcat-8.5.73/bin/startup.sh start退出vim并保存修改的文件。 说明&#xff1a;/u…...

跨域问题讨论

问题 跨域定义 当一个请求url的协议、域名、端口三者之间任意一个与当前页面地址不同即为跨域。 跨域的安全隐患&#xff08;CSRF攻击&#xff09; 也就是说&#xff0c;一旦允许跨域&#xff0c;意味着允许恶意网站随意攻击可信网站&#xff0c;带来安全风险。 这里面有一…...

ESP32设备通信-两个ESP32设备之间HTTP通信

两个ESP32设备之间HTTP通信 文章目录 两个ESP32设备之间HTTP通信1、应用介绍2、软件准备3、硬件准备4、代码实现4.1 ESP32服务器节点代码4.2 ESP32客户端节点代码在本文中,我们将介绍如何在没有任何物理路由器或互联网连接的情况下使用 Wi-Fi 在两个 ESP32 开发板之间执行无线…...

数据结构学习笔记——查找算法中的树形查找(平衡二叉树)

目录 一、平衡二叉树的定义二、平衡因子三、平衡二叉树的插入和构造&#xff08;一&#xff09;LL型旋转&#xff08;二&#xff09;LR型旋转&#xff08;三&#xff09;RR型旋转&#xff08;四&#xff09;RL型旋转 四、平衡二叉树的删除&#xff08;一&#xff09;叶子结点&a…...

AI写专著必备:优质工具大盘点,全方位提升专著撰写效率

撰写学术专著时&#xff0c;研究者需要在“内容的深度”和“覆盖的广度”之间找到一个恰当的平衡&#xff0c;而这正是许多人面临的主要难题。从深度出发&#xff0c;专著的核心论点需要具备足够的学术分量&#xff0c;不仅要清楚解答“是什么”&#xff0c;还应该深入探讨“为…...

Pixel Fashion Atelier效果实测:在RTX 4090上单图生成耗时稳定在3.2秒内

Pixel Fashion Atelier效果实测&#xff1a;在RTX 4090上单图生成耗时稳定在3.2秒内 1. 测试环境与配置 1.1 硬件配置 本次测试使用的硬件平台为高端游戏工作站&#xff1a; 显卡&#xff1a;NVIDIA RTX 4090 (24GB GDDR6X)处理器&#xff1a;Intel i9-13900K内存&#xff…...

MT5中文数据增强神器:无需训练,直接生成多样化的句子变体

MT5中文数据增强神器&#xff1a;无需训练&#xff0c;直接生成多样化的句子变体 1. 为什么需要中文文本数据增强 在自然语言处理领域&#xff0c;数据是模型训练的基础。但获取高质量的中文标注数据往往面临三大难题&#xff1a; 数据稀缺&#xff1a;特定领域&#xff08;…...

TranslucentTB:Windows任务栏透明化工具,让桌面视觉体验焕然一新

TranslucentTB&#xff1a;Windows任务栏透明化工具&#xff0c;让桌面视觉体验焕然一新 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB …...

锂离子电池热失控模型:1方程参数辨识与MATLAB实践

锂离子电池热失控模型&#xff1a;1方程参数辨识 锂离子电池热失控仿真&#xff0c;详细描述了如何利用热失控ARC数据和MATLAB软件进行热失控模型参数辨识的方法步骤&#xff0c;及MATLAB代码解析&#xff0c;从下图可见&#xff0c;拟合的结果具有较高的准确度。 本案例提供基…...

VibeVoice语音合成快速入门:Web应用搭建,支持音频文件保存

VibeVoice语音合成快速入门&#xff1a;Web应用搭建&#xff0c;支持音频文件保存 1. 引言&#xff1a;为什么选择VibeVoice&#xff1f; 想象一下&#xff0c;你正在开发一个需要语音交互的应用&#xff0c;或者需要为大量文本内容生成有声版本。传统语音合成方案要么延迟高…...

计算机毕业设计springboot基于的突发事件信息共享系统 基于Spring Boot的应急事件协同处理平台 利用Spring Boot构建的突发状况信息交互系统

计算机毕业设计springboot基于的突发事件信息共享系统 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。在当今社会&#xff0c;各类突发事件频发&#xff0c;从自然灾害到公共卫生…...

零基础掌握Degrees of Lewdity本地化工具:开源项目中文适配方案全攻略

零基础掌握Degrees of Lewdity本地化工具&#xff1a;开源项目中文适配方案全攻略 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Lo…...

RWKV7-1.5B-G1A跨平台部署实战:从Windows开发到Linux生产环境

RWKV7-1.5B-G1A跨平台部署实战&#xff1a;从Windows开发到Linux生产环境 1. 引言 最近在开发一个基于RWKV7-1.5B-G1A的智能写作助手&#xff0c;遇到了一个很实际的问题&#xff1a;在Windows笔记本上开发调试很方便&#xff0c;但真正要上线服务时&#xff0c;又需要在Linu…...

造相-Z-Image效果对比:Z-Image在中文语义理解准确率上超越SDXL实测

造相-Z-Image效果对比&#xff1a;Z-Image在中文语义理解准确率上超越SDXL实测 最近在折腾本地文生图&#xff0c;发现了一个挺有意思的现象。我用的是基于通义千问官方Z-Image模型定制的“造相-Z-Image”引擎&#xff0c;专门为我的RTX 4090显卡做了优化。本来只是想试试它的…...