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后如何解决…

flume linux 命令,Linux环境Flume安装配置及使用

# Flume监听本地Linux-hive日志文件采集到HDFS——配置文件# Name the components on this agent agent别名设置a1.sources r1a1.sinks k1a1.channels c1# Describe/configure the source 设置数据源监听本地文件配置# exec 执行一个命令的方式去查看文件 tail -F 实时查看a…

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…

linux能记录日志的终端,Linux上的日志系统

Linux上的日志系统1、syslog2、syslog-ng 下一代升级版日志系统红帽5使用syslog 6使用syslog-ngsyslog 服务syslogd : 系统&#xff0c;非内核产生的信息klogd : 内核&#xff0c;专门负责记录内核的日志信息系统启动时所输出的信息【到init启动之前的所有信息】&#xff1a;…

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操…

linux 常用命令行 大全

Linux常用命令大全&#xff08;非常全&#xff01;&#xff01;&#xff01;&#xff09; 最近都在和Linux打交道&#xff0c;感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制&#xff0c;当然&#xff0c;这也是很多人喜欢linux的原因&#xff0c…

linux运行程序+后注销,linux – 如果我启动后台进程然后注销,它会继续运行吗?...

在与同事长时间讨论之后问这个问题,我真的想在这里澄清一下.我通过添加“&”来启动后台进程到命令行或用CTRL-Z停止它并在后台用“bg”恢复它.然后我退出了.怎么了&#xff1f;我们很确定它应该被一个SIGHUP杀死,但这并没有发生;再次登录时,进程很愉快,并且pstree显示它被i…

SpringBoot使用Websocket

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

linux误删文件咋恢复,恢复Linux误删文件

恢复Linux误删文件目录方法一方法二不小心执行了rm删除了某些文件&#xff0c;是有点倒霉。不过我一般都会设置alias rmrm -i在删除的时候需要输入Y才能真正删除&#xff0c;当然此时用rm -f那也会直接删除了。因此找了两种方案恢复误删的文件。方法一适用系统内置debugfs&…

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

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

linux 中文意思,linux 中 ~/. 是什么意思

~代表你的/home/用户明目录假设你的用户名是x&#xff0c;那么~/就是/home/x/.是代表此目录本身&#xff0c;但是一般可以不写所以cd ~/. 和cd ~ 和cd ~/效果是一样的但是.后面有东西又是另外一个问题&#xff0c;点在文件名头部&#xff0c;代表一个隐藏文件~/.local是你的主目…

图文详解mina框架

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

linux my.cnf基本参数,Linux中MySQL配置文件my.cnf参数说明

MySQL参数优化这东西不好好研究还是比较难懂的&#xff0c;其实不光是MySQL&#xff0c;大部分程序的参数优化&#xff0c;是很复杂的。MySQL的参数优化也不例外&#xff0c;对于不同的需求&#xff0c;还有硬件的配置&#xff0c;优化不可能又最优选择&#xff0c;只能慢慢的进…

gpt efi win7 linux,科学网—UEFI+GPTSSD+HDD 成功安装win10+Centos linux7 过程 - 陈长云的博文...

主机为&#xff1a;Dell Precision T7910台式工作站 SSD HDD 双硬盘1、必备工具① Disk Genious② Win10系统(光盘和U盘&#xff0c;我用的是U盘)&#xff0c;网上可以下载cn_windows_10_business_edition_version_1809_updated_sept_2018_x64_dvd_fc5542c0③ Centos7系统(我…

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

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

linux shell文件锁,shell脚本实现文件锁功能

1.背景当多个进程可能会对同样的数据执行操作时&#xff0c;这些进程需要保证其它进程没有在操作&#xff0c;以免损坏数据。通常&#xff0c;这样的进程会使用一个“锁文件”&#xff0c;也就是建立一个文件来告诉别的进程自己在运行&#xff0c;如果检测到那个文件存在则认为…

java 图片操作技术之RGB的获取

/*** 名词解释:* 饱和度是指色彩的鲜艳程度&#xff0c;也称色彩的纯度。* 灰度&#xff1a;使用黑色调表示物体&#xff0c;即用黑色为基准色&#xff0c;不同的饱和度的黑色来显示图像。* 像素&#xff1a;如同摄影的相片一样&#xff0c;数码影像也具有连续性的浓淡阶调&…

SpringBoot使用Mina框架进行服务端与客户端数据通信

pom.xml引入 <dependency><groupId>org.apache.mina</groupId><artifactId>mina-core</artifactId><version>2.1.3</version> </dependency> <dependency><groupId>org.apache.mina</groupId><artifact…