職場故事 (3) 小試牛刀

來源: 小河石子 2017-01-13 18:43:27 [] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (2682 bytes)

很快接到了一個新任務。有一個 screen顯示大公司(有幾百個子公司)的信息,要花一分多鍾才能把數據load出來。而其他的screen 通常都隻需要幾秒鍾。我的任務是讓這個screen load得快一些。

我的 lead建議我做paging, 每一頁隻顯示一部分子公司,這樣load一頁就不會太慢了。可是我覺得這樣不能解決全部問題,因為有些sorting的功能還是需要所有子公司的信息。於是我決定仔細看code,找出問題究竟在哪裏。連續看了兩天,終於看出問題來了。原來程序裏有一個循環,load每個子公司的信息都要查詢一次數據庫。即使每次查詢隻要0.1秒,600個子公司就需要60秒,即一分鍾。所以我覺得是要把這一部分程序改成一次查詢就把所有子公司的信息都load出來。

決定好了我就開始改程序。但緊接著發現一個查詢還不行,要分成幾個,因為load的信息比較複雜,一個查詢不好寫。這也許就是為什麽原作者調用了一個現有的查詢,隻是把它簡單地寫到了循環裏。因為改了查詢,還要改數據結構,這樣才能把幾個查詢的結果很快連接起來。改完程序後速度確實有提高,但感覺還是不理想。再仔細讀code,發現後端有個數據庫程序運行很長時間。再把這段程序看一遍,發現它也有同樣的問題,而且還返回了很多不需要的數據。我跟DBA溝通之後簡化了這段程序。等一切都改好,原來load這個screen需要一分多鍾,現在隻需要7秒。

我非常興奮,但知道任務還沒有結束,我還需要把這個screen上每個功能測試一遍,保證沒有產生新的問題。等我仔仔細細確認無誤後,我才把程序交給QA測試。最後沒什麽問題,順利上了production。記得在一次小組會上我提到了這個速度的大幅提高,有一個人說用戶應該請我吃飯,我隻是笑笑而已。我想我在意的是我隻想把工作完成好,使用戶滿意是我們工作的基本目標。

一切看起來是這麽順理成章,但現在我從一個過來人的角度看,還是能看出一些問題。現在知道水有多深之後,我也不敢輕易大改程序,因為可能會產生新的問題,讓用戶無法使用。當初真是有初生牛犢不怕虎的勁頭。還有就是有些領導為謹慎起見,可能也不會同意一個新人就這麽大改程序,這也可以理解。說到底我的領導還是給了我一定的自由度,也給了我充分的信任。我才應該要感謝他們。

所有跟帖: 

蠻專業,沒有再加index? :-) -xiache- 給 xiache 發送悄悄話 xiache 的博客首頁 (0 bytes) () 01/13/2017 postreply 22:45:21

沒有 -小河石子- 給 小河石子 發送悄悄話 (82 bytes) () 01/14/2017 postreply 08:30:55

不錯,看到了我從前的影子。 -happybob- 給 happybob 發送悄悄話 happybob 的博客首頁 (457 bytes) () 01/14/2017 postreply 05:19:17

你說得對! -小河石子- 給 小河石子 發送悄悄話 (129 bytes) () 01/14/2017 postreply 08:28:40

請您先登陸,再發跟帖!

發現Adblock插件

如要繼續瀏覽
請支持本站 請務必在本站關閉/移除任何Adblock

關閉Adblock後 請點擊

請參考如何關閉Adblock/Adblock plus

安裝Adblock plus用戶請點擊瀏覽器圖標
選擇“Disable on www.wenxuecity.com”

安裝Adblock用戶請點擊圖標
選擇“don't run on pages on this domain”