SQL优化思想--时间都去哪儿了⓵时间=等待时间+工作时间

梁敬彬梁敬弘兄弟出品

SQL优化思想全系列——原文链接

往期回顾
——————————————————————————————————————
SQL优化思想——不优化或许是最好的优化⓵哈哈,其实我几乎什么都没做
SQL优化思想——不优化或许是最好的优化⓶莫急,探究SQL存在的必要性
SQL优化思想——不优化或许是最好的优化⓷莫慌,观察SQL运行的全局性
SQL优化思想——不优化或许是最好的优化⓸莫忘,分析SQL需求的合理性
——————————————————————————————————————
SQL优化思想——让SQL跑得更慢一些⓵没听错,让SQL跑得更慢一些!
SQL优化思想——让SQL跑得更慢一些⓶案例1: 引入并行,你快他慢!
SQL优化思想——让SQL跑得更慢一些⓷案例2: 增加索引,查快写慢!
SQL优化思想——让SQL跑得更慢一些⓸案例3:关闭日志,险中求快!
——————————————————————————————————————

引言

SQL优化思想已经讨论了两集,不论是“不优化是最好的优化”,还是“变慢是更好的选择”,都在强调做事要有批判性思维,三思而后行。

接下来,将探讨SQL优化本身的思路,看看如何让SQL跑得更快。毕竟,衡量SQL快慢的标准就是其运行时间的长短。

围绕“时间”这个主题,结合超市购物的生活场景,让我们步入正文,共同探寻在XXX平台优化案例中,SQL的时间都去哪儿了。

⓵时间=等待时间+工作时间

Q:L老师,听说您刚解决了困扰XXX平台许久的问题,到底是怎么做的?

L:我与他们一起分析SQL执行慢时,时间都花在哪些环节,然后有的放矢地进行优化,最终成功解决问题。

M:哦,时间花在哪些环节呢?不就是执行环节吗?还有其他环节?

L:前些日子你抱怨在超市购物时,买单的时间比购物过程花的时间还长。其实,这事便能解答你的疑问。

M:哦,是吗?

L:你在超市买单时,通常会在收银台排队,这就类似于SQL的等待时长。等到轮到你时,才能与收银员进行面对面结算,这就类似于SQL的工作时长。超市买单时间=等待时间+工作时间。当你抱怨买单慢时,需明确耗时主要是在等待上还是在工作上。

M:我购物时,收银台的结算倒是很快,时间主要耗在排队上,也就是等待时间太长了。

在这里插入图片描述

L:是的,数据库的SQL也是如此。SQL执行时间=等待时间+工作时间。接下来,我们就通过类比超市买单的场景,来探讨XXX平台的SQL优化案例。

概念解析补充

1. SQL执行时间的构成

文中提到的"SQL执行时间=等待时间+工作时间"是SQL优化的重要理论基础。这个简单的公式揭示了SQL执行过程中的两个关键时间组成部分:

等待时间:指SQL语句在执行过程中等待系统资源的时间。就像在超市排队等待前面的顾客结账一样,SQL也需要等待CPU、内存、I/O等资源。等待时间通常与系统并发负载、资源争用情况相关。

工作时间:指SQL语句获取到所需资源后,实际执行所消耗的时间。这相当于顾客轮到收银台后,收银员进行扫码、结算的过程。工作时间反映的是SQL本身的执行效率,与查询复杂度、数据量、执行计划等因素相关。

2. 等待事件(Wait Events)

数据库系统通常会记录SQL执行过程中的等待事件,主要等待事件类型包括:

CPU等待:等待处理器资源分配
I/O等待:包括逻辑读和物理读的等待时间
锁等待:包括行锁、表锁、锁升级等导致的等待
锁闩(Latch)等待:数据库内部数据结构访问控制导致的等待
缓冲区等待:等待缓冲区资源分配或清理
日志等待:等待日志写入或日志缓冲区分配
网络等待:分布式环境下的网络通信等待
不同数据库产品(Oracle、SQL Server、MySQL等)对等待事件的分类和命名有所不同,但基本概念是一致的。

3. 超市排队的类比解析

文中使用的超市排队场景是一个形象的类比:

超市排队等待对应SQL等待时间:
排队人数多 ≈ 数据库并发高
收银台少 ≈ 系统资源不足
特殊顾客插队 ≈ 高优先级会话抢占资源
收银员结算对应SQL工作时间:
收银员经验不足导致扫码慢 ≈ SQL执行计划不优
顾客购物车物品多 ≈ SQL处理的数据量大
收银机性能差 ≈ 数据库服务器配置低

未完待续…
SQL优化思想–时间都去哪儿了⓶减少CPU持有等待时间(增加收银台)

公众号:收获不止数据库

系列回顾
“大白话人工智能” 系列
“数据库拍案惊奇” 系列
“世事洞明皆学问” 系列

SQL优化思想⓷–时间都去哪儿了原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

收获不止数据库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值