三年前,我们项目组使用的数据库还是MS SQL Server,我是公司的DBA。9月份的一天,项目经理告知我们一个“惊人”的消息:可能近期会将数据库转向IBM DB2。此消息一出,我和众兄弟都觉得这个消息太不靠谱了。我们前期近半年的开发都是基于 MS SQL Server 的,这说改就改没有那么容易吧。况且,我们项目组内,甚至我们公司内部,都没有人熟悉 IBM DB2。所以,讨论的结果是,怎么可能突然转成DB2呢?“That's impossible!” 也没有当回事情。
转眼一个月过去了,在我都差点忘记这个事情的时候,老总告知我们的项目经理,数据库转型为 DB2。这对于我们项目组和我而言无异于晴天霹雳。在我张大的嘴巴还未合拢之前,项目经理“表情沉重”地走到我身边拍了拍我的肩膀,说,“兄弟,就靠你了”。
其后,我就开始了与DB2的“痛苦”接触,以下是一些当时的言语片段:
· “妈的,这个DB2的资料网上也太少了吧!?你看SQL Server 和 Oracle 的资料满大街都是!”
· “妈的,这个DB2的人机界面怎么这么土!?”(言下之意是你看人家 SQL Server 人机交互就做得很好,呵呵)
· “妈的,这个游标怎么死活不生效呢!?”(为了适应“她”的语法,我痛苦了一个多星期)
· “妈的,怎么这么多妈的……哈哈”
数据库终于转成 DB2 了,表也重建了,数据也 load 过去了,索引、函数也建立了,存储过程也重新写好了,现在面对的问题就是加工数据仓库的数据。就在这个时侯,噩梦出现了:
有三个产销存明细的表待加工,记录数 144 X 3 = 532 万条。
“存储过程编译,成功!”
“执行!”,我一敲回车键,然后兴奋地盯着屏幕……
半小时过去了,根据存储过程打印出的处理信息,DB2 处理了 7500 条数据;
汗……
一个小时过去了,根据存储过程打印出的处理信息,DB2 处理了 14000 条数据;
狂汗……
两个小时过去了,根据存储过程打印出的处理信息,DB2 处理了 25000 条数据;
瀑布汗……
这个时候,经理过来亲切地微笑着问我,“兄弟,怎么样啦?什么时候数据能OK呢?”
我一边“成吉思汗”,一边用计算器估计时间给他:
5320000 / 140000 = 38
“老大,38个小时左右吧”
项目经理沉默了一分钟……
然后,他说,“好,今天晚上开着服务器让他跑!”
第二天一早。
项目经理:“呵呵,怎么样啦?”
我一查,存储过程还在“嘿咻嘿咻”地跑,可是,数据才跑了 150000 条……
我结结巴巴地说,“经理,貌似这个DB2越跑越慢啊……”
…… ……
又一天过去了,数据仍然在跑……
…… ……
三天过去了,数据仍然在跑……
…… ……
五天过去了。在我对DB2大失所望,项目经理焦头烂额的时候,老总适时地出场了,“DB2 我们都是刚接触,碰到问题很正常,大家不要丧气,我去把IBM 上海的工程师给你们整过来!”
一天后,IBM 工程师来了!很帅气,很年轻,很自信!当然,薪水也比咱高很多,呵呵。
3小时过后,IBM 工程师说话了,“我做了一些更改,咱们试试性能好吧?”
我激动地说,“好!”
工程师:“那你正在跑的那个存储过程我就KILL掉了哦”
我痛苦了半分钟后,决然地说,“干掉!”
工程师:“干掉了,好,我们现在开始跑!”
于是一堆兄弟围着电脑显示屏,追踪着存储过程打印出的处理信息:
“我靠,秒秒钟就10万条啦!”
“我靠,80万条了!”
“我靠,150万条了!”
…… ……
伴随着兄弟们不停的“我靠”,在存储过程跑了5分钟后,数据全部处理完了。
我心里叫了一声,“我靠!”
随后,IBM 工程师轻松地跟老总吃饭去了,我一个人瘫坐在电脑桌前。我另一个兄弟过来拍拍我,说,“我靠,果然很牛B啊!这个DB2调教不好就TM整个一拖拉机,调教好了就TM整个一个梅赛德斯奔驰啊!”
那天晚上,为了5天和5分钟的强烈对比,我失眠了。
从那天开始,我告诉自己,不管用什么方法,我再也不会让DB2玩我了,因为——“要么玩死DB2,要么被DB2玩死!”,我毅然地选择了前者!学习,实践,总结;再学习,实践,总结……如此反复。
一个骄傲的事情是,在那之后,在DB2方面,我们再也没有邀请过IBM或者其他任何资源的协助……
IBM Developwork 网站、IBM DB2 信息中心成了我最常去的地方……
现在?呵呵,虽然不敢号称“玩死DB2”,但已经不会“被DB2玩死”了,在 DB2china ,我结实了很多志同道合的弟兄们,我也再一次潜心跟大家交流、探讨和学习。
这,就是我与DB2的痛苦接触。
作者:pengjianjun
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-618168/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15082138/viewspace-618168/
本文讲述了作者所在团队从使用MSSQLServer转向IBMDB2过程中遇到的挑战及解决办法。特别是通过IBM工程师的帮助,解决了数据处理速度缓慢的问题,从38小时缩短到5分钟,揭示了正确配置和优化的重要性。

1万+

被折叠的 条评论
为什么被折叠?



