上周我們的dms系統(tǒng)出問題,并發(fā)用戶數(shù)一多,數(shù)據(jù)庫的連接就會不斷往上升,一會就把數(shù)據(jù)庫給跑死了。這個(gè)系統(tǒng)是原來另一個(gè)項(xiàng)目經(jīng)理負(fù)責(zé)的,現(xiàn)在要走人,結(jié)果就丟給我了。
才拿到這個(gè)系統(tǒng)就發(fā)現(xiàn)很多文檔和資料都不齊,此外已經(jīng)用了3年,真可謂是補(bǔ)丁疊補(bǔ)丁,怎一個(gè)亂字了得!而且原來這個(gè)項(xiàng)目的人基本已經(jīng)都走光了!直接跑去跟副總說,結(jié)果一通教育回來就是死活都由你負(fù)責(zé)了(后來才知道那個(gè)系統(tǒng)是出來名的亂,沒人肯接),說是我新做的一個(gè)doms系統(tǒng)跟這個(gè)系統(tǒng)在業(yè)務(wù)上有很多聯(lián)系,就只有我合適接這個(gè)任務(wù)……等等。
唉!!命苦,這種事就來找我,發(fā)錢怎么總不先想到我
抱怨歸抱怨,出來問題總的搞定。dms這個(gè)系統(tǒng)是給大眾的經(jīng)銷商用來賣車的,才停了2個(gè)小時(shí),客服和大眾總公司哪邊就快炸鍋了。
還好從周一到周四天天通宵,總算搞定。期間請了不少高手,也算是學(xué)到不少,算是沒有白白通宵那么多天!
總結(jié)一下教訓(xùn):
1、對于這樣的大系統(tǒng),并發(fā)用戶那么多,設(shè)計(jì)時(shí)候就應(yīng)該考慮到,做一些總體上的優(yōu)化設(shè)計(jì)。至少統(tǒng)計(jì)報(bào)表不要跑在業(yè)務(wù)系統(tǒng)的服務(wù)器上吧!!
2、服務(wù)器應(yīng)定期維護(hù),否則功能再強(qiáng)勁也經(jīng)不起幾年大負(fù)荷的折騰啊。這個(gè)系統(tǒng)的服務(wù)器據(jù)我所致,3年才停過一次,還是停電,而且沒有日常維護(hù)!
3、對于需求變化,應(yīng)該盡量做到重構(gòu)系統(tǒng),包括代碼和數(shù)據(jù)庫;業(yè)務(wù)數(shù)據(jù)沒用的應(yīng)設(shè)置計(jì)劃定期備份出業(yè)務(wù)系統(tǒng)。
4、數(shù)據(jù)庫優(yōu)化。由于系統(tǒng)的sql應(yīng)該優(yōu)化過多次,基本已經(jīng)沒有什么直接優(yōu)化的余地了。這次請了一個(gè)比較資深的高手過來,對于ORACLE玩的很熟,分析完數(shù)據(jù)表后,用hint直接指定rule作為sql的優(yōu)化器,竟然將幾句原來運(yùn)行幾十秒的sql一下子優(yōu)化成幾百ms級,而且只在sql前加了/*+rule*/這一句。看來自己這塊是太菜鳥了,想想要是我的組里能有這樣一位…… (hint這塊確實(shí)要好好研究一下了)
上面幾條看起來好像都很簡單,但是真的能做到確實(shí)很難,在進(jìn)度壓力和資源戲缺的情跨下,常常是能保證完成任務(wù)就算萬事大吉拉~~~~~唉!