一條Select語句導致瓶頸


情況上周,公司一項目新上線,剛上線的第2天,在后台發現數據庫服務器與IIS服務器的網絡IO出現瓶頸,1GB的網絡帶寬,占用了70%-100%,也就是每秒傳輸數據700MB-1GB,數據庫使用內存高達21GB。

IIS服務器CPU使用率時常爆至80%-90%,導致網站頻頻出現連接超時。

 

原因晚上只好暫時關閉網站,進行服務器維護,作全面的檢查跟蹤,發現是一句Select語句導致:

 

Select  *  From Table1

 

這條語句,語法是沒問題的,但在應用上出了問題。Table1存儲的是10多萬行數據,表數據每天都會上萬的增長。

為了統計總行數,頻頻調用這語句,每秒刷新不低於1000次。

也因此導致網絡出現瓶頸。

 

解決:后面把Select語句改成

 

Select  Count( *from Table1 

 

 即可解決問題,網絡 IO數據馬上降至10MB以下,數據庫使用內存也保持在預計范圍12GB。

 

看似非常簡單的問題,其實不然。解決這問題,所花的時間周期是6小時,檢查問題使用1小時,修改代碼使用5小時。 

 

 小結:

做事要細心,不要犯低級錯誤,有時候成功取決於細節。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM