小編最近遇到一個很氣人的案子,對方的案例是超過幾百萬的APP案子,系統是委外開發,開發商指定Server要架設在雲端系統、指定資料庫軟體,聽起來像是經驗老到,但卻
一整個烙賽,指定使用雲端系統卻不使用SaaS而是使用IaaS規劃的思維,老天這個上線後業主肯定狂噴錢吧…….(默哀)
果不其然過沒幾個月,廠商就跟業主反應說最近在連線資料庫時,會出現「The request limit for the database is 1600 and has been reached.」的告警訊息,很明顯是連線資料的時地request達到上限值了,而廠商希望業主再把SQL往上提升一級,但這可不是開玩笑的,往上提升一階代表著每個月要噴的錢就更多了,應該是要找一下那些SQL搜尋語法特別沒效率,而導致整個SQL效能不佳吧….
幫業主看了一下,老天爺~整個SQL都沒建立index索引,這樣粗暴?
請業主跟廠商反應,請他們再常用搜尋資料表均補上index後再觀察看看,沒想到廠商竟然說這個案子沒包含SQL維護,因此無法協助,老天這年頭敢說鬼話的真多。資料庫欄位定義沒給業主、程式運作的流程架構也沒給,卻請業主自行維護SQL index,而且這個案子直逼千萬……
拍拍業主的肩膀,小聲的說我感覺你被騙了^^
事情竟然遇到了,廠商又不願意協助建立index或查看SQL搜尋的語法是否太沒效率,那該如何解決呢?
編在Azure設定畫面上竟然發現了SQL系統有依據過往的運作歷程,透過「智慧型效能」分析自動給予了建立index的建議,老天真是太感動了,立馬幫業主設定,果然SQL負載馬上下降,快來了解如何設定吧。
01、首先登入Azure portal
02、點選左上角的功能選項後,接著點選「SQL資料庫」
03、選取SQL的服務名稱
04、在左側的項目拉到「智慧型效能」,接著點選「效能建議」
05、在建議選項中會有好幾個推薦建立的索引(index),就把這些索引都建立一下吧!
06、下圖為開始建立SQL資料庫的索引畫面
07、索引建立完畢後會進入驗證階段,等待SQL運行一段時間驗證結果
08、經過了一天的察看,果然就不會在出現CPU 100%及SQL request不足的告警了
小編只能說這年頭廠商百百種,建議無論案子大小,都應該建立合約,並把必要事項寫在合約裡,並要讓公司IT部門有適當的參與規劃,才不會花了錢又當冤大頭,程式跟系統又四不像,忍不住又笑了小編的朋友案例,以後我要改叫他「凱哥」