教學課程:「適用於 MySQL 的 Azure 資料庫 - 彈性伺服器」中的查詢效能深入解析
查詢效能深入解析可提供資料庫的智慧查詢分析。 最受青睞的深入解析是工作負載模式和執行時間較長的查詢。 了解這些深入解析可協助您找出哪些查詢可最佳化以改善整體效能,並有效率地使用可用的資源。
查詢效能深入解析提供下列資訊,專門協助您縮短為資料庫效能進行疑難排解的時間:
- 前 N 個長時間執行的查詢及其趨勢。
- 查詢詳細資料:檢視執行歷程記錄 (含查詢時間最小值、最大值、平均值和標準差)。
- 資源使用率 (CPU、記憶體和儲存體)。
本文討論如何使用 適用於 MySQL 的 Azure 資料庫 彈性伺服器慢速查詢記錄、Log Analytics 工具和活頁簿範本,以可視化 適用於 MySQL 的 Azure 資料庫 彈性伺服器的查詢效能深入解析。
在本教學課程中,您將了解如何:
- 使用 Azure 入口網站或 Azure CLI 設定慢速查詢記錄
- 設定診斷
- 使用 Log Analytics 檢視慢速查詢記錄
- 使用活頁簿檢視慢速查詢記錄
必要條件
- 快速入門:使用 Azure 入口網站 建立 適用於 MySQL 的 Azure 資料庫 實例。
- 建立 Log Analytics 工作區。
使用 Azure 入口網站設定慢速查詢記錄
登入 Azure 入口網站。
選取您的 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。
在左側窗格的 [設定] 下方,選取 [伺服器參數]。
針對 slow_query_log 參數,選取 ON。
如需其他參數的資訊,例如 long_query_time 和 log_slow_admin_statements,請參閱慢速查詢記錄文件。
選取儲存。
關閉 [伺服器參數] 頁面,以返回記錄清單。
使用 Azure CLI 設定慢速查詢記錄
或者,您可以執行下列命令,從 Azure CLI 啟用和設定 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例的慢速查詢記錄:
重要
為了確保您的 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例的效能不會受到嚴重影響,建議您只記錄稽核目的所需的事件類型和使用者。
- 啟用慢速查詢記錄。
az mysql flexible-server parameter set \
--name slow_query_log \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON
- 將 long_query_time 時間設定為 10 秒。 此設定會記錄執行超過 10 秒的所有查詢。 根據您對慢速查詢的定義調整此閾值。
az mysql server configuration set \
--name long_query_time \
--resource-group myresourcegroup \
--server mydemoserver \
--value 10
設定診斷
慢速查詢記錄會與 Azure 監視器診斷設定整合,可讓您將記錄管線傳送至三個資料接收器的任一個:
- Log Analytics 工作區
- 事件中樞
- 儲存體帳戶
注意
您應該先建立資料接收器,然後再設定診斷設定。 您可以在已設定的資料接收器中存取慢速查詢記錄。 最多可能需要 10 分鐘,記錄才會顯示。
在左側窗格的 [監視] 下方,選取 [診斷設定]。
在 [診斷設定] 窗格上,選取 [新增診斷設定]。
在 [名稱] 方塊中,輸入診斷設定的名稱。
透過選取目的地對應的核取方塊,來指定要將慢速查詢記錄傳送到哪些目的地 (Log Analytics 工作區、事件中樞或儲存體帳戶)。
注意
在此教學課程中,您會將慢速查詢記錄傳送至 Log Analytics 工作區。
在 [記錄] 下方,針對記錄類型,選取 [MySqlSlowLogs] 核取方塊。
設定要將慢速查詢記錄輸送至資料接收器後,請選取 [儲存]。
使用 Log Analytics 檢視查詢深入解析
在 Log Analytics 左側窗格的 [監視] 下方,選取 [記錄]。
關閉開啟的 [查詢] 視窗。
在查詢視窗中,您可以撰寫要執行的查詢。 為了在特定伺服器上尋找執行時間超過 10 秒的查詢,我們使用了下列程式碼:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | where query_time_d > 10
選取 [時間範圍],然後執行查詢。 結果顯示在下圖中:
使用活頁簿檢視查詢深入解析
在活頁簿中,您可以檢視下列視覺效果:
- 查詢載入
- 作用中的連接總數
- 慢速查詢趨勢 (>10 秒查詢時間)
- 慢速查詢詳細資料
- 列出最長的 5 個査詢
- 依最小值、最大值、平均和標準差查詢時間來彙總慢速查詢
注意
- 若要檢視資源使用率,您可以使用「概觀」範本。
- 您也可以編輯這些範本,並根據自己的需求進行自訂。 如需詳細資訊,請參閱 Azure 活頁簿。
- 如需快速檢視,您也可以將活頁簿或 Log Analytics 查詢釘選到儀表板。 如需詳細資訊,請參閱在 Azure 入口網站中建立儀表板。
在查詢效能深入解析中,有兩項計量可協助您找出潛在的瓶頸︰持續時間和執行計數。 長時間執行的查詢最有可能會鎖定資源較長的時間、封鎖其他使用者,以及限制擴充性。
在某些情況下,很高的執行計數可能會導致網路往返次數增加。 往返次數會影響效能。 其會受限於網路延遲和下游伺服器延遲。 因此,執行計數有助於找出經常執行的 (「多對話」) 查詢。 這些查詢是最適合進行最佳化的候選項目。