谁动了我的数据库

点击蓝色“有关SQL”关注我哟

加个“星标”,天天与10000人一起快乐成长

图 | 榖依米 | 三亚

平时运行极快的 SQL,突然某天不灵了。连续执行3,4遍,都巨慢无比。此时,向天磕头,与地求救,都不如责问 session.

究竟是谁在动我的数据库?

很多朋友,尤其那些不关注我的朋友,或是看了我的文章,没有动手加个星标,基本是不会知道了。太替你们可惜!

Y 姐是我们小组的女神,172的个头,修长的身段,尤其妙如天籁的好声音,长期霸占 SQL 开发女神首榜。女神要有点啥问题,全组男生当然是倾巢出动,不论是做 ETL 的,还是做报表的,连前端的鲜肉哥哥都要来刷下存在感。

当然, Y 姐碰到的问题,并不是谁次次都能解决的。简单的问题,资深的前端也能修复;而稍深点的问题,小哥哥们就尴尬了。有的看完问题,说要查查百度,有的看完,如有所思,说道自己曾经也遇到过这样的问题,改改参数,就解决了,但改哪里,记不起来了。

我最喜欢看这些小哥哥红着笑脸,长叹而去的样子。年轻人的羞涩,就像是一部很好的时光穿梭机,有谁真正讨厌看到自己昨天的样子?

“今天的UAT, SQL 执行好慢,小C,你也是这样吗” Y 姐侧向小C,喃喃低语。

“是啊,平时贼快的语句,刚才等了10来秒,就返回 6 条数据哈”小C也挺着急。

“数据库又崩了,是不是测试组又在搞压力测试,上周他们做过一回,搞得我们页面全卡了。” 这位 95 后小 Z,平时最热衷各式技术话题,不管前后,对他来说,一锅端。

“我问过测试组,他们没测,今天” 小C耷拉着脑袋,很迷惑。

“那怎么办呢?我这条SQL语句也很简单啊,两张表 Join, 拿的字段都在索引里,平时秒出。”

“没办法咯,要么等,要么问问 L 吧。” 小C朝我座位方向瞅了一眼,“L今天喝过星巴克了,应该没有太多活。我们一起去问问”

听了 Y 姐的简单描述,我知道我的黄氏三板斧绝对可以派上用场,但又不忍心,这些繁琐的技术细节去骚扰女神的三千青丝,怜香惜玉不仅仅是楚留香才有。

但本着技术人的负责,我最终还是要把原理告诉 Y 姐和小 C,最终她们愿意接收还是放弃,那都是她们的自由了。

“你的 SQL 跑得很慢,但是没出错,说明你的 SQL 写得正确。但数据库此时的响应不够快,你怀疑有大量的 SQL 程序 同时在跑。那么我们只要对数据库做监控,就知道都有谁在上面跑程序了”

“这监控该怎么做呢?要写c代码,还是c++”

"没那么复杂,我们不开发底层。还是用 SQL 就可以了。数据库会给每条 SQL 一张门卡,这张门卡很特殊,上面有唯一标识符,且实时地被监控头检测到。带着门卡的 SQL,它所做的每一次动作,包括执行 insert, delete, update, 甚至是 alter, 都会记录在监控室。假如我们怀疑某条 SQL 做了不合理的操作,到监控室调下录像,就全知晓了。"

“那怎么去调用这些监控录像呢?”

“不急,我再说说,怎么分发这些门卡。有些门卡是由管家自动分配的,而有些门卡有特殊待遇,能开启特别的通道,当然监控的方式就更不一样。所以需要特别的设置。有了这两个分类,我们就知道看什么样的信息,去什么样的监控室了”

“比如进门,出门是简单的普卡;而参观藏品,就需要非标卡。在藏品室内,每个举动都会被录像记录,还有可能需要保存一段时间,所以对于监控成本也很高,不会给一般SQL。”

“L,你说那么多,都被搞晕了。能不能简单粗暴点,直接帮我们解决问题?” 小C虽然有点婴儿肥,但性子还是比较急。

“其实原理讲差不多了,如果不想自己写代码,做精确控制,那我们打开 SQL Profiler 就能看到当前在数据库服务器上的所有人了。如果人多的话,自然你的 SQL 也就慢咯”


“这么好用的工具,又学了一招” 年轻的小C,脾气来的快,也去得快。

--完--

往期精彩:

本号精华合集(二)

如何写好 5000 行的 SQL 代码

如何提高阅读 SQL 源代码的快感

我在面试数据库工程师候选人时,常问的一些题

零基础 SQL 数据库小白,从入门到精通的学习路线与书单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dbLenis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值