個人資料
正文

笑S,這個家夥什麽都不懂。。。

(2011-10-28 15:01:35) 下一個

ZT BY Cowboy


我在 CS 公司工作的時候,有一天接到一個軟件工程師發來的郵件,說我們的數據庫運行得非常慢。這個軟件工程師是在印度園區,他把郵件同時送給我們的部門經理,他在那封郵件裏,非常不客氣地指責我們的數據庫沒有管理好,希望我們的部門經理安排我盡快解決問題。


部門經理立即打電話給我,讓我在第一時間幫助解決。我看了那個郵件,又檢查了一下數據庫,並沒發現什麽問題。我寫了個郵件問那位工程師:“為什麽你說我們的數據庫運行很慢,你是怎麽測試的,你執行了什麽計算機語句時發現了問題?”那位軟件工程師給我寄來一個Word 文件,他說:“我運行這個語句,執行了三個小時還沒有得出答案。”


我把那個 Word 文件打開一看,簡直不敢相信我的眼睛,一個SQL 語言的命令竟然有135頁那麽長!真不知道有沒有這一項吉尼斯世界紀錄。我問他:“你有沒有搞錯?這個命令是你用手敲入計算機的嗎?”他說是用一個工具軟件產生的。我告訴他:“我不能讀你的這個語句,你把所有的客戶要求和設計文件給我寄過來。”


他把用戶的要求和設計文件寄了過來以後,我一看就知道,他對這種工作沒有很多經驗,脾氣還那麽壞。我根據用戶的要求,重新修改了一下,我先建立了兩個輔助程序,然後隻用了半頁紙,寫了一個SQL語言,執行這個命令隻需要20 微妙就得到了需要的結果。


我把我的設計和結果寄給他以後,再也沒有見過他的郵件。同時我也告訴我們的部門經理,不是我們的數據庫管理的不好,而是他不知道怎樣恰當地設計和運用數據庫。


還有一次,一位工程部的人員找到我說:“我們的總結報告運行的非常慢,檢查一下數據庫有什麽問題。”我檢查了一下那個數據庫沒發現什麽問題。我問她:“你是怎樣運行你的總結報告的?”她進入了一個網頁,那個網頁上有一個鏈接,然後她說,她的工作就是每天早上一上班就點擊這個鏈接。我問她:“通常,在你點擊這個鏈接以後,需要多長時間能看到總結報告。”她回答說:“十個小時。”“什麽?”我簡直不敢相信自己的耳朵:“十個小時?”我問她:“哦,你每天早上一來就點擊這個鏈接,然後去衝一杯咖啡,再吃中午飯,一直等到下班,這就是你一天的工作?”她笑著回答說:“我在等總結報告的時候,也幹些別的事情。”“真是見鬼了!”我心裏說:“誰設計的這個總結報告,簡直是太糟糕了。”想象一下,如果有幾十個人同時運行那個總結報告,數據庫就差不多要癱瘓了。


我了解了情況之後對她說:“好了,我已經知道了。等我把問題解決了會通知你。”我進入了那台伺服器,找到了原程序,重新設計了那個總結報告。讓那台機器每天夜裏運行,產生好報告放到一個地方,然後,把那個網頁上的鏈接直接指到事先已經產生好的總結報告。


第二天,那位女士又跑來了:“不好了!不對勁了!”我問她:“什麽事?”她說:“我今天早上一點擊那個鏈接,總結報告就立即跑出來了。”我問她:“那是不是你要的報告?”她說:“是啊。”我問她:“那你還有什麽問題?”她說:“一定是出了什麽問題,不可能會這麽快?”我對她說:“我把那份報告的生成過程修改了,每天夜裏會自動生成那個報告。等你來的時候,報告已經準備好了。”她頓時急了:“那不行,我們需要的是實時報告。”我跟她解釋說:“你不可能得到實時報告,第一,你們的數據每天才更新一次,第二,如果生成一個報告需要十個小時,哪裏還談得上實時。當你點擊那個鏈接以後,在等待的十個小時中,數據早就發生變化了。你最後能看到的報告隻可能是十個小時之前的數據結果。這跟我在十個小時前產生總結報告沒有任何實質上的差別。”我反複跟她解釋了好幾遍,她才將信將疑地走了。我曾經用類似的方法為很多公司解決了總結報告運行太慢的問題。


一個星期以後,我在走廊裏遇到了那位女士,我問她:“現在怎麽樣了?”她笑著回答說:“真沒想到,你把我的工作搞的太容易了。”工作變得太容易了,也需要一個適應過程。


很多人,甚至是管理層的領導並不了解數據庫的運作,以為管理數據庫就是保持數據庫工作的正常運行。其實數據庫管理的好不好,應用軟件的設計上是否合理,在運行的效率上有著天壤之別。我做過很多優化,把原有數據庫應用軟件的運行速度提高幾千倍,甚至幾萬倍。在我看來,數據庫的管理和應用軟件的設計就像是一門工程上的藝術。當你在網絡上漫遊的時候,當你在使用衛星定位係統的時候,當你在使用手機的時候,後麵都有強大而高效率的數據庫支持。

[ 打印 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.