共計 637 個字符,預計需要花費 2 分鐘才能閱讀完成。
本篇文章給大家分享的是有關如何分析一條 select 語句引起的瓶頸問題,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。
情境還原:
公司一項目新上線,剛上線的第 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 小時。
以上就是如何分析一條 select 語句引起的瓶頸問題,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。