oracle 表关联索引优化,Oracle执行计划调优-超级大表关联超级小表的性能调优

今日客户现场出现一个查询SQL异常慢的情况。

用时分钟级别。

SELECT *

FROM (SELECT a1.*, rownum rn

FROM (SELECT openOrder2017.exchId,

............

openOrder2017.internalbizmark,

customer.typeIdList

FROM openOrder2017, customer

WHERE openOrder2017.custId = customer.custId

AND openOrder2017.orderTime >= 20170810000000

AND openOrder2017.orderTime <= 20170811235959

AND openOrder2017.branchId IN ('001100', '001101')

AND openOrder2017.acctId IN ('##########')

AND openOrder2017.optLevel IN ('A0')

AND openOrder2017.custType IN

('A2', 'A9', 'A1', 'A4', 'A3')

ORDER BY orderTime, serialNum) a1

WHERE rownum <= 100) a2

WHERE rn >= 1;

其中:

openOrder2017表数据量360万条;

customer表数据量76条;

0818b9ca8b590ca3270a3433284dd417.png

执行计划利用上了ACCTID索引,但是有大量的NESTED LOOPS,导致异常高的逻辑读。

将SQL中的AND openOrder2017.acctId IN ('##########')条件取消,SQL查询速度反而变快了,但是走的是全表扫描方式。

0818b9ca8b590ca3270a3433284dd417.png

突然醒悟,这是两个数据体量差距异常大的表,有严重的数据倾斜。通过openOrder2017.acctId索引访问,反而代价很大,择全表扫描的效率比选择索引要更高。

改造为:

FROM  openOrder2017 left join customer  on openOrder2017.custId = customer.custId

WHERE  openOrder2017.orderTime >= 20170810000000

AND openOrder2017.orderTime <= 20170811235959

0818b9ca8b590ca3270a3433284dd417.png

执行计划虽然走了全表扫描,但是执行效率大幅提升了。

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

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

相关文章

Common Sort - 排序 - Java

文章目录排序概念稳定性&#xff08;重要&#xff09;应用 - 举例1.、各大商城的价格从低到高等2、中国大学排名常见的排序算法&#xff08;8 种&#xff09;- 总览直接插入排序模拟实现 - 插入排序稳定性分析结论希尔排序思考原理科学家的分组思维模拟实现 - 希尔排序总结选择…

linux的运行级别如何更改成6,把Linux运行级别设置为6后如何解决的经验分享

我们知道&#xff0c;Linux有7个运行级别&#xff0c;而运行级别设置为6后&#xff0c;会导致Linux系统刚启动完成就立刻重启&#xff0c;重启后又会立刻重启&#xff0c;如此反复&#xff0c;导致系统不能正常运行。本文笔者和大家分享一下误把Linux运行级别设置为6后如何解决…

Redis五种数据结构应用场景

文章目录前言二、字符串String2.1、常用操作2.2、应用场景2.2.1、单值缓存&#xff08;最常用&#xff09;2.2.2、对象缓存2.2.3、分布式锁2.2.4、计数器三、哈希hash3.1、常用操作3.2、应用场景3.2.1、对象缓存3.2.2、 电商购物车四、列表list4.1、常用操作4.2、应用场景4.2.1…

IntelliJ IDEA中的神仙插件

文章目录1. Alibaba Java Coding Guidelines2.GsonFormat3.A8Translation4.Maven Helper5.Free Mybatis plugin6.Grep Console7.Lombok8.Nyan progress bar9.FindBugs-IDEA10.Key Promoter X11.JavaDoc12.ignore13.RainbowBrackets14.Activate-power-mode15.CodeGlance16.Gener…

linux 远程拒绝服务,Linux Kernel SCTP远程拒绝服务漏洞

发布日期&#xff1a;2011-08-30更新日期&#xff1a;2011-08-30受影响系统&#xff1a;Linux kernel 2.6.x描述&#xff1a;--------------------------------------------------------------------------------BUGTRAQ ID: 49373CVE ID: CVE-2011-2482Linux Kernel是Linux操…

SpringBoot使用Websocket

webSocket是HTML5的一种新协议&#xff0c;它实现了服务端与客户端的全双工通信&#xff0c;建立在传输层&#xff0c;tcp协议之上&#xff0c;即浏览器与服务端需要先建立tcp协议&#xff0c;再发送webSocket连接建立请求。webSocket的连接&#xff1a;客户端发送请求信息&…

Springboot整合Websocket遇到的坑_websocket session不支持序列化,无法存储至redis_Websocket相关问题总结(Session共享,用户多端登录等)

Springboot整合Websocket遇到的坑 一、使用Springboot内嵌的tomcat启动websocket 1.添加ServerEndpointExporter配置bean Configuration public class WebSocketConfig {/*** 服务器节点** 如果使用独立的servlet容器&#xff0c;而不是直接使用springboot的内置容器&#x…

图文详解mina框架

Apache Mina Server 是一个网络通信应用框架&#xff0c;也就是说&#xff0c;它主要是对基于TCP/IP、UDP/IP协议栈的通信框架&#xff08;当然&#xff0c;也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等&#xff09;&#xff0c;Mina 可以帮助我们快速开发高性能、高…

MINA核心结构和处理消息的逻辑流程

1.MINA 核心结构 IoService 最底层的是IOService&#xff0c;负责具体的IO相关工作。这一层的典型代表有IOSocketAcceptor和IOSocketChannel&#xff0c;分别对应TCP协议下的服务端和客户端的IOService。IOService的意义在于隐藏底层IO的细节&#xff0c;对上提供统一的基于事…

TortoiseSVN忽略文件或文件夹

TortoiseSVN忽略文件或文件夹 方法一&#xff1a; 选择项目目录—>右键–选择TortoiseSVN–Properties 1.svn:ignore&#xff1a;必须每个工作目录都要设置 2.global-ignores&#xff1a;只需要配置一次 添加内容: .settings .settings/* target target/* .classpath .p…

Showdoc使用——接口文档

一、到showdoc官方注册账号 官方地址https://www.showdoc.com.cn/ 登录并创建一个项目,如图&#xff1a; 二、下载showdoc环境 再项目设置中有开发api,点开如下&#xff1a; 其中就是官方教程&#xff0c;简单全面。showdoc基础就是使用官方脚本 https://git-scm.com/downloa…

8款JVM性能调优监控工具(提高开发效率)

在平时的开发当中我们总是会遇到各种各样的问题&#xff0c;比如说内存泄漏、死锁、CPU等。遇到问题不可怕&#xff0c;关键是我们如何去排查这些错误&#xff0c;对症下药才是根本。不过对于很多人来说&#xff0c;往往找不到这些问题的根本所在&#xff0c;因此这篇文章主要是…

linux的静态编译elf无法调试,[翻译]自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB...

自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie15PB在上一节中&#xff0c;你已经听说了DWARF调试格式&#xff0c;它是程序的调试信息&#xff0c;是一种可以更好理解源码的方式&#xff0c;而不只是解析程序。今天我们将讨论源代码级调试信息的细…

SpringBoot踩坑记录 Invalid bound statement (not found)引发的一些列问题

SpringBoot踩坑记录 Invalid bound statement (not found)引发的一些列问题 当你开开心心搭建了一个SpringBoot项目&#xff0c;用插件生成了entity、dao、mapper&#xff0c;写下第一个Controller准备试一下&#xff0c;结果却发现一条简单的查询报错了。 {"timestamp…

Java中switch参数传null会引起异常——Java 语法糖

问题 switch 参数不能是null&#xff0c;swicth(null)会报java.lang.NullPointerException异常 查找原因 为什么会这样呢&#xff0c;查找一下原因&#xff1a; 找到编译后的class文件&#xff0c;就明白了 总结&#xff1a; switch 是一个语法糖。switch语句是先计算 par…

linux head命令作用,Linux查看文件内容之head命令

1. head命令简介本文主要介绍head命令的作用与常用使用方法&#xff0c;该命令和tail命令相反&#xff0c;head默认显示用来显示文本开头&#xff0c;而tail默认显示结尾某个数量的文字区块。2. head命令选项-q 隐藏文件名-v 显示文件名-c 显示字节数-n 显示的行数3. 常见使用方…

SpringBoot使用jasypt加解密密码

在我们的服务中不可避免的需要使用到一些秘钥&#xff08;数据库、redis等&#xff09;&#xff1b;使用过SpringBoot配置文件的朋友都知道&#xff0c;资源文件中的内容通常情况下是明文显示&#xff0c;安全性就比较低一些。打开application.properties或application.yml&…

android 写字体投影,android-给字体设置投影

1&#xff0c;在代码中添加文字阴影TextView 有一个方法/*** Gives the text a shadow of the specified radius and color, the specified* distance from its normal position.** attr ref android.R.styleable#TextView_shadowColor* attr ref android.R.styleable#TextView…

android 开源图表动画,Android 图表开发开源库MPAndroidChart-Go语言中文社区

上面是APP中实现的效果图(点击可以放大查看)图1的效果不是用这个实现的&#xff0c;如果感兴趣可以参考我这篇文章 Android渐变圆环总体来说&#xff0c;MPAndroidChart可能是目前Android 开发最好用的一个三方库了&#xff0c;功能非常强大&#xff0c;集成简单。直接导入作为…

电脑开启防火墙后ping不通 及 开启防火墙后,不能远程的解决办法

有些情况下电脑需要开防火墙但是又希望能被远程或者ping通。 一、先查看电脑的网络类型&#xff08;第二步中打开对应网络类型下的协议&#xff09; 二、控制面板 - Windows防火墙 - 高级设置-入站规则 &#xff08;1&#xff09;开启防火墙后&#xff0c;能ping通设置。 &…