前面介紹完.NET開發者如何在Azure Debug,今天進階研究調校效能。
上線專案如何追蹤效能瓶頸,如何改善是一件專業、而且困難的事情。諸如:資料庫慢查詢,沒有建立有效索引,沒有使用快取造成資料庫負擔等。
而 Azure 同樣提供AI自動化服務,讓我們可以省下一些複雜動作,做到調校資料庫 SQL DataBase 效能目的,這就是Automatic Tuning功能
。
現在有一個文章表格post,資料結構:
ID,發布日期(pubdate),標題(Title),內容(Cotent)
故意在ID欄位不建立PK索引
,使用執行計畫查詢,可以發現使用全表格掃描
沒有任何優化動作。
接著到Azure DataBase開啟自動建立索引功能
:
【步驟1】打開Azure SQL DataBase > Automatictuning
【步驟2】將CREATE INDEX
設為INHERIT
,由系統自動優化、建立索引。
【步驟3】設定完後,點擊 Apply 保存設定。
等待系統跑一段時間後,Azure會自動使用AI統計判斷,那些表格資料需要建立索引。
等待建立完成後,再一次使用執行計畫驗證之前的查詢
登登登,可以發現系統使用叢集索引搜尋
優化查詢。
故意在post表格建立日期欄位,建立兩個索引:
CREATE INDEX IDX_post_pubdate1 ON post (pubdate);
CREATE INDEX IDX_post_pubdate2 ON post (pubdate);
接著到Azure DataBase開啟自動管理刪除索引功能
:
將DROP INDEX
設為INHERIT
,由系統提供優化、刪除索引建議。
接著等Azure統計一段時間後,可以在Performance recommendations
看到刪除重複Index的建議:
點開建議,可以看原因細節,接著同意刪除,系統自動將重複的索引刪除。
另外DROP INDEX 功能有幾點要注意:
不包含唯一索引
(大於90天)
以上示範雖然看似簡單,讀者可能覺得人工調校就可以,但是在實際複雜環境中,要調校資料庫是複雜的一件事,如表格多,外鍵連結複雜問題,而現在我們可以利用Azure來輔助幫忙,省掉許多人工判斷、維護成本,筆者覺得可以嘗試看看。