动态 SQL 你还敢用?

2010 年左右的时候,笔者曾服务于阿里旗下服装 ERP 公司。

 

该公司的 ERP 产品服务于全国 8W+ 零售店。当时用的语言是 Delphi(严重暴露自己的年龄了,估计现在的小朋友们都不知道 Delphi 是何物)。平时虽有些小流量,小卡顿倒也过得相当稳,技术部的开发们应付这些司空见惯的小问题还是多少有些把握的。

 

直到某天,上海已进入酷暑,特别热,人也燥,估计机器也燥。上午 10 点陆续有华东、华南地区的门店来电话,说结算特别慢,有些客户等得都发毛了,还都是星级老客户。要求技术部马上解决。技术经理马上召集大伙开会,意思是来活了,不一样的活。当然了老司机们是不当回事的,多吸两口烟,姗姗来迟。

 

当然,会议室的气氛相当凝重。

 

DBA 组老大谢工已经 OnCall 到位。这位团建时候都带着厚厚的从红门(Red Gate)打印的《 SQL Server Internals 》的中年男,给全场的威慑力是相当惊人的。他出现了,问题就严重了。当然姗姗来迟的老司机们也知道基本没他们什么事儿了,可死寂般的 16 平会议室却没给他们任何宽心的余地,紧盯着打着圈的 ERP 大屏一筹莫展。而另一屏的 ITIL 检测,已经显示数据库服务器 100% CPU利用率,横了近半小时,仍不见下去的表象。久横必跌,可惜真不是中国股市。

 

“周末有新上什么版本吗?” 显然谢工对之前的代码信心十足。

 

“没有大的动作,微调了下库存状态的查询接口。”

 

“涉及到了 SQL 的存储过程没?”

 

“我写了个查询,定义了一个参数,用来接收搜索条件?”

 

“调出来看看”

 

负责 UI 的小飞,抓过键盘,清脆的敲下了 sp_helptext.

 

“加了一个 @filter, 用来接收前端的各种组合查询条件,拼接成动态的 SQL ,灵活查询。”

 

“马上把这接口关了” 谢工没给一丝笑容,“你新来的吧,SQL 规范手册读了吗?”

 

“我刚进公司不久,上家公司也是做 ERP 的” 小飞似乎不满这种命令式的语气,说话间,修改了 web.xml.

 

"下来了,下来了...." 年轻的工程师瞬间喜笑颜开,似乎刚才就是一场短暂的地震。

 

“来来来,冰棍来了” 进入酷暑之后,技术经理每天的事情之一就是去买楼下的和路雪,“谢工,你给我们讲讲原理呗?”

 

“看在冰棍的面子上,就讲一句” 这谢工也是个贪食主义者,好吃!据说 IBM,EMC, HP(当年的三大咨询公司)努力挖,谢工也丝毫不动摇,宁愿在这里拿个基本工资,就是因为楼下的美食街。大嘴吃四方,是他的名言。每个星期还去锦江的自助旋转厅吃上一回,每次回去都被他老婆骂,但依然改不掉。“不抽烟,不喝酒,剩下的钱不得犒劳这张嘴么?” 谢工也经常在我们面前豪气的吹嘘自己怼媳妇儿的说辞。

 

"硬解析 SQL 文本将带来大量的 CPU 消耗!” 谢工本想留下这么句话就走,但经不住技术经理的满嘴妙语,“谢工,还是多讲讲吧,这句心法我都很难理解啊”

 

“一图胜千言,给大家留个图。再多说我也不会了,嘴笨!” 谢工神秘的从他的博客里挑出一张图,打在了 PPT 上

 

640?wx_fmt=png

 

“谢工,你的意思是动态 SQL 引起了大量的硬解析,造成了 CPU 的紧张?” 小飞的眼神充满了悬疑。

 

“大量的 CPU 占用率阻塞了数据库的其他操作,挂起的操作,接连就会引起其他的等待。手册还是要看的,写的明白了,不要写动态 SQL”

 

 

640

猜你喜欢:

 

听说你们的数据库并发 2 万就跪了?

列出 SQL 数据库行数最多的前十张表,你要几秒?

BI, 数据仓库,ETL, 数据开发,有什么区别?

 

640?wx_fmt=jpeg

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dbLenis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值