加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 安全 > 正文

SQL优化三板斧:精简之道、驱动为王、集合为本

发布时间:2021-01-08 07:17:05 所属栏目:安全 来源:网络整理
导读:副标题#e# 《SQL优化三板斧:精简之道、驱动为王、集合为本》要点: 本文介绍了SQL优化三板斧:精简之道、驱动为王、集合为本,希望对您有用。如果有疑问,可以联系我们。 作者介绍 黄浩,现任职于中国惠普,从业十年,始终专注于SQL.在华为做项目的两年多,做

再次执行,耗时2:28,虽然与秒级的性能要求相距甚远,但是至少性能提升了近50%,其意义并在于提升的效果,而在于证明了优化方向是正确的,即在大表林立群狼环视虎视眈眈的环境中,要快速准确的定位出驱动表,需要明确将驱动表数据准备好.

第三板斧:神工鬼斧

性能尚未达标,优化仍需继续.

先看看执行计划:

从COST列,并没有看到成本特别高的操作.所以,我放弃了继续在执行计划上做文章,转而深入分析SQL代码逻辑.

经过一番抽丝剥茧起承转合后,SQL的整体代码逻辑也呼之欲出,发现顶层的逻辑设计非常简单明了,就是三个子查询的结果集内连接,如下图所示:

接下来,我做了一件被人“鄙视”的小儿科的事,就是分别执行了这三个子查询.原本想着总会有一个慢的,我就重点优化慢的那个子查询.而结果却出人意表,三个子查询都是在2S左右就能完成执行,而且数据量都在1万以内.那为何三个子查询关联在一起,性能会如此受影响呢?要知道,如果是三个1万以内的表关联,即便是无任何索引,那也是秒出呀.

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读