打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
走在专家的路上,每天优化一条SQL

每天一条SQL优化,帮你走在专家的路上。

SQL文本:

SELECT 'x'

  FROM MD3U.CARD_INFO A, MD3U.PERSON_INFO B

 WHERE GBRQ IS NULL

   AND NVL(KZT, '0') <> '0'

   AND FFDSX = 'F'

   AND A.RYID = B.RYID

   AND ROWNUM <= 300

   AND B.DQJBJGID = '37100501'

   AND KH IS NOT NULL

执行计划如下:

执行计划统计信息如下:

索引相关信息如下:

从上面可以看到,该SQL的总执行时间为336,973,478毫秒(ms)大概93.6小时(h),总执行次数为143,101次,平均一天执行大概13000次,从而可以判定是一个使用非常频繁的SQL查询

因为执行次数比较多,所以总时间也非常大,单次执行时间大概2.3秒(s)。经下面优化验证从2.3秒改善为0.1秒,总执行时间会从93.6小时减少为0.1*143101/60/60 = 3.97小时左右。而且,与该SQL相似的SQL非常多,从排名中可以看到排名1、3的都与这个SQL相似。

所以只要优化了这个SQL,相似的SQL都可以进行优化。

优化前,文本执行后的执行计划:

建议创建索引的SQL如下:

CREATE INDEX md3u.KC47$AAZ198_AAC001 ON md3u.

KC47(AAZ198,AAC001) ONLINE;

CREATE INDEX md3u.AZ01$BKB004_AAZ512_AAZ500 ON 

md3u.AZ01(AAC001,BKB004,AAZ512,AAZ500,AAZ502) ONLINE

创建后,文本执行后的执行计划:

可以看到最终优化后:

执行时间从原来的1.01秒(s)变为0.1秒(s)

逻辑读从原来的143164变为37854

执行时间上性能提高10倍,逻辑读减少3.7倍。

有你想看的SQL优化

或许你不知道的10条SQL技巧

优化了一半的SQL

掀开SQL的神秘面纱,将优化进行到底

将SQL优化做到极致 - 子查询优化


扫二维码,可获知更多SQL优化课程信息!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Execution Plan 执行计划介绍
如何在SSMS中生成和保存估计或实际执行计划
【7分钟精通MySql中SQL执行原理】
SQL 方面专家
zhouweifeng | 分析执行计划优化SQL<4>ORACLE的执行计划(转)2
【专家讲坛】卜学勇:支气管扩张症的概念、机制、HRCT表现与疾病谱
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服