Sql-Server
如何解決間歇性 Azure SQL 性能問題
我在 Azure Web App 後面執行一個 Azure SQL 實例,這兩個實例在大多數情況下都執行良好。在看似隨機的時間間隔(每隔幾天左右),數據庫 DTU 會完全掛起。我將如何解決這些問題的根源?我認為這與來自伺服器的請求突然湧入有關,但我無法弄清楚究竟在哪裡/如何。
根據 Azure 中的“性能指標”,違規指標似乎是
- 數據輸入/輸出
- 日誌輸入/輸出
- 連接數增加
- 臨時數據庫文件大小
同樣,我認為這可能是由伺服器突然發送大量請求引起的,但我不知道如何驗證或如何跟踪導致此問題的請求源。
想法?
首先檢查 Querystore 中的報告。設置一個時間跨度,包括執行良好和糟糕的時間,然後檢查各種指標。在糟糕的時期是否有更多的執行,是否一些查詢得到了錯誤的計劃並導致資源問題 - 如果是這樣,很容易強制執行更好的計劃。
我不知道如何驗證或跟踪導致此問題的請求源。
您可以使用以下兩種方法中的任何一種來完成:
- 使用擴展事件跟踪並為每個會話收集主機名。您已經知道自己的工作量增加了。這將告訴哪些主機是增加的工作負載的來源。如果您需要有關擴展事件的教程,我發現Phil 的這篇教程很好。
- 打開Azure SQL 審核,它提供每個已完成批次的詳細資訊
如果您想了解更多詳細資訊,請設置 setup diagnostic。收集數據一段時間後,您可以使用“AzureSQLAnalytics”解決方案查看內置圖形和數據集。您還可以使用Kusto 查詢語言來查詢原始數據。