客服微信
在日常的运维工作中,我们经常遇到SQL突然变慢,执行了几个小时还没有结果返回。我们收了执行计划,SQL有几百行,执行计划也有几十行,耐住性子看了好半天,还是理不出头绪,心象被一团乌云堵住。只好找更资深的DBA去解决,资深DBA看看执行计划告诉你,你试试这个,再试试那个,实在不行找应用讨论一下。多数时候,我们能把问题用SQL改写、加HINT、用SQL profile的方式绕过去,可是当写报告时,面对质疑时,我们又说不出所以然,只好色厉而内荏地说,事情本来就是这样。带着一脑子自己都讲不清的问号,惴惴不安地结束谈话。
如果您是一名开发人员,收到DBA让你改SQL/加hint的建议时,你心里会不会有很多问号?为什么以前不出?数据量没有太大变化呀!真的是SQL的问题吗?release一个版本需要经过N多繁复的过程,年底会不会被扣绩效?w您知道DBA说得不对,但又无力反驳....
有没有一种办法,能让我们暂时放下执行计划,放下SQL语句,用极快的速度找到问题发生在哪里,并快速有效地解决问题,一招命中。写报告时,又能经得起质疑与推敲呢?
其实是有的。上面说的是“放下”,放下不是放弃,是暂时放下那些让你乌云堵心的东西,去观察问题的实相,最直接的问题是慢,我们去观察慢就好了,为什么跳过N多步去读执行计划呢?
通过这门课,大家将学会SQL优化的另一个方法。这个方法快速、有效、精准。
陈宏义
云贝教育高级讲师 数据库服务技术总监