走在专家的路上,每天一条SQL优化(3)
本系列分享的SQL优化实例,并不一定适用于所有相似SQL或所有场景。我们只是介绍一种方法,当你再次遇到类似SQL,可以根据真实场景,选择最适合的方案。另外,有疑问的时候,最好的办法就是测试,动手才能找到最佳答案!
SQL文本如下:
SELECT NVL(SUM(SRE), 0) HRJEFROM MD3U.CARD_INCOME AWHERE YLGRZHH = '371081110630214389'AND DDQCSRH IS NULLAND ZDLSH IS NOT NULLAND NVL(CGBZ, '0') = '1'AND NOTEXISTS (SELECT 'x'FROM MD3U.BILL_MID BWHERE B.ZDLSH = A.ZDLSHAND B.DM = 'hbry'AND B.C = '2')AND NOTEXISTS (SELECT 'x'FROM MD3U.BILL_MID CWHERE C.ZDLSH = A.ZDLSHAND C.DM = 'hrzh'AND C.C = '2');
执行计划如下:
SQL统计信息如下:
索引相关信息如下:
从上面可以看到,该SQL的总执行时间为111,452,436毫秒(ms)大概30.95小时(h),总执行次数为295,420次,平均一天执行26856次,从而可以判定也是一个使用非常频繁的SQL查询。因为执行次数比较多,所以总时间也非常大,但是单次执行时间并不是很长,只有大概0.37秒(s)。这个SQL还可以进行优化。
优化前,文本执行后的执行计划:
建议创建索引的SQL如下:
CREATE INDEX MD3U.idx_KC20_01 ON MD3U.KC20(AAE072,BKE021,BKE004) ONLINE;
CREATE INDEX MD3u.idx_KZ03_01 ON
MD3U.KZ03(AAZ905,BKE163) GLOBAL ONLINE ;
创建索引后,文本执行后的执行计划:
可以看到优化后,执行时间从原来的0.01秒(s)变为0.01秒(s),逻辑读从原来的82变为17,执行时间上性能没有提高,但是逻辑读减少大概4.8多倍。
原文发布时间为:2017-09-27
作者: 云和恩墨
本文来自云栖社区合作伙伴“数据和云”,了解相关信息可以关注“数据和云”微信公众号
走在专家的路上,每天一条SQL优化(3)相关推荐
- [20170104]一条sql优化.txt
[20170104]一条sql优化.txt --生产系统不明原因重启,看了1下,顺便看了前后的awr报表,发现一条语句,其实问题没什么,只不过这种现象在开发很普遍,做一点点记录. 1.环境: xxxx ...
- 非常实用的12条 SQL 优化方案
在开始介绍如何优化sql前,先附上mysql内部逻辑图让大家有所了解 (1)连接器: 主要负责跟客户端建立连接.获取权限.维持和管理连接 (2)查询缓存: 优先在缓存中进行查询,如果查到了则直接返回, ...
- 老司机总结的12条 SQL 优化方案(非常实用)
今日推荐 减少 try-catch ,这样做才叫优雅!让人上瘾的新一代开发神器,彻底告别Controller.Service.Dao等方法SpringBoot实现人脸识别功能相信我,使用 Stream ...
- mysql数据库优化语句_【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!
慢SQL消耗了70%~90%的数据库CPU资源: SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低: SQL语句可以有不同的写法: 1 不使用子 ...
- 从一条巨慢SQL看基于Oracle的SQL优化(重磅彩蛋+PPT)
本文根据DBAplus社群第110期线上分享整理而成,文末还有好书送哦~ 讲师介绍 丁俊 新炬网络首席性能优化专家 SQL审核产品经理 DBAplus社群联合发起人.<剑破冰山-Oracle开发 ...
- sql加上唯一索引后批量插入_阿里大佬总结的52条SQL语句性能优化策略,建议收藏...
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 cnblogs.com/SimpleWu/p/9929043.html 推荐:h ...
- 【CSDN英雄会】 易宝支付架构师、移动产品线技术负责人程超:走在Java的路上
英雄会是CSDN旗下针对国内IT技术领域专家展示和交流的平台.通过线下线上的互动形式,为CSDN社区专家提供更多学习.合作.宣传的机会.英雄会后续将在北上广深等国内一二线城市建立分会,各个分会后期将组 ...
- centos7修改ip地址命令_每天一条Linux命令(12) hostnam (超详细)
在Linux系统中,命令 hostname 用于显示或者设置系统主机名称.许多网络程序均用主机名来标识主机,若没有设置好主机名,则可能会导致网络服务不正常. 语法: hostname [选择] 参数: ...
- 小鸡走在半路上遇到了一条河
表演结束了的台词 今天的表演结束了的台词,梳理的很整齐,除夕之夜,狂风大作,小桥怎么断了,昨晚他又看得很晚,红烧甲鱼但令我最兴奋的是居然有海鲜在桌子上,谁知他往床上一栽,露出又长又尖的牙齿,相互举杯敬 ...
最新文章
- 学习web前端开发要注意什么
- Ora_Excel 碉堡了
- [T-ARA][Bo Peep Bo Peep]
- PHP 安全问题入门:10 个常见安全问题 + 实例讲解
- JSP JSTL标签库基本使用
- windows live writer向cnblog发布文章设置(转)
- Linux系统目录说明
- python如何设置窗口保持显示_如何保持Python脚本输出窗口打开?
- three.js制作3d模型工具_浙江3D打印模型制作收费标准▁来图定制
- linux先安装svn server
- 解决PLSQL Developer 插入中文 乱码问题
- windows7 nmap 命令行版本
- md5和sha256算法的区别,哪个比较安全
- Devart Excel Addins 2.5.660 插件 Crack
- Mybatis 缓存配置 ,如何禁用缓存与一些细节
- LLVM编写Pass对程序进行obfuscate
- PhpSpreadsheet读取excel
- List如何在遍历时删除元素
- animator动画
- English - therefore,so,hence,then,accordingly,thus用法解析
热门文章
- vue 拍照人脸识别_安排上了!PC人脸识别登录,出乎意料的简单
- 柱状图中xy轴怎么出现_烤烟烘烤中出现叶片发霉怎么办?
- MII 功能简介(论坛整理)
- php左右值实现无限极分类,基于ThinkPHP的二叉树左右值无限极分类实现
- HDLBits 系列(22) Shift register
- HDLBits 系列(12)All about Karnaugh Map
- 20165201 实验五 网络编程与安全
- JavaScriptSerializer序列化和反序列化JSON:使用自定义JavaScriptConverter
- GO语言基础之reflect反射
- oracle 常用sql