• 注册
    • 查看作者
    • 十年DBA老兵:警惕,重Java轻SQL乃性能大忌

      作者:黄浩

      简介:从业十年,始终专注于 SQL。十年一剑,十年磨砺。3 年通信行业,写就近 3 万条 SQL;5 年制造行业,遨游在 ETL 的浪潮;2 年,厚积薄发自成一家。

      注:《与批判》是黄浩老师的系列新作,他将从过往在项目技术支持中碰到的诸多案例入手,细化到每一条问题 SQL 的内在病因,反思每一个案例的背后深思,抽丝剥茧,层层深入。

      今天跟大家分享的是 WM_CONCAT 优化,这是一次凭借技术+经验+运气三重加成才得以解决的案例,are you ready?

      一、案例

      初来乍到,如临深渊

      公元 2015 年 7 月 20 日,天气还是一如既往的炙热,徐徐海风也吹不散身上的热量。在经过近一个小时的班车加徒步,我正式开启了在 H 公司 I 项目技术支持的第一天。

      因为信息安全的缘故,第一次进入项目现场的外协人员需要办理接待电子流。因为是非研发区域,倒也快捷,经过两重关卡后,顺利进入到项目现场。

      妈呀,一个足球场般大小的办公场地,一排排的办公桌和电脑井然有序,但桌面上的办公用品却凌乱狼藉,而座位跟座位之间没有任何的遮挡。

      当时已经九点多,基本上座无虚席,虽然开着空调,仍然能感觉到一股由电脑散发出来的掺杂着铁锈及灰尘味的热气,以及由此带来的压抑感。

      在与现场同事简短的寒暄后,我便立马投入到工作——当然是交接工作。与同事的沟通中,我获取了如下信息:

      • 这位同事来这个项目不足两周。

      • 离职的原因是适应不了外包的工作方式。

      • 项目组性能优化工作开展很困难,项目组在这方面的投入不够,重视度也不够。

      综合起来就是一个字:坑,而且是巨坑。原本担心我主观上的能力问题会影响到工作,没想到客观环境也是如此糟糕,我的心情跌倒了冰点。

      明天是这位同事在项目组的 last day,所以交接工作必须在今天内完成。好在同事进项目不久,还没有接触到太多的工作内容,手头上就一个在优化的 SQL。

      因为这个 SQL 的优化已经持续了几天时间,所以到目前显得有些紧迫:该 SQL 的优化被安排在周六上线,因此必须要在周三前给出优化方案。

      离周三只有不到 2 天的时间了,而目前的优化进度还停留在问题定位阶段,还不确定问题处在哪里?换句话说,不是工作交接,而是从零开始。

      我在同事的交接文档中找到了问题 SQL,代码如下:

      1

    • 0
    • 0
    • 0
    • 18
    • 请登录之后再进行评论

      登录
    • 单栏布局 侧栏位置: