分享方式:


「適用於 MySQL 的 Azure 資料庫」中的查詢效能深入解析

適用於: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器

重要

適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫單一伺服器會發生什麼事?

適用於:適用於 MySQL 的 Azure 資料庫 5.7、8.0

查詢效能深入解析可協助您快速找出執行時間最長的查詢、一段時間後的變化情形,以及受到哪些等候的影響。

常見案例

長時間執行的查詢

  • 識別在過去 X 小時中執行最久的查詢
  • 識別等候資源的前 N 項查詢

等候的統計資料

  • 了解查詢的等候本質
  • 了解資源等候的趨勢,以及資源爭用所在的位置

必要條件

資料必須存在於查詢存放區中,查詢效能深入解析才能運作。

檢視效能深入解析

Azure 入口網站中的查詢效能深入解析檢視會以視覺效果呈現來自查詢存放區的重要資訊。

在「適用於 MySQL 的 Azure 資料庫」伺服器的入口網站頁面中,在功能表列的 [智慧型效能] 區段下選取 [查詢效能深入解析]

長時間執行的查詢

[長時間執行的查詢] 索引標籤會每隔 15 分鐘彙總一次,依每次執行的平均持續時間,顯示前 5 個查詢識別碼。 您可以從 [查詢數目] 下拉式清單中選取,以檢視更多查詢識別碼。 當您這樣做時,特定查詢識別碼的圖表色彩可能會有所變更。

注意

不再支援顯示查詢文字,而且會顯示為空白。 系統會移除查詢文字,以避免查詢文字或基礎結構描述的未經授權存取情形,這可能會造成安全性風險。

檢視查詢文字的建議步驟如下:

  1. 在 Azure 入口網站的「查詢效能深入解析」刀鋒視窗中,識別熱門查詢的 query_id。
  2. 從 MySQL Workbench 或 mysql.exe 用戶端,或從您偏好的查詢工具,登入 Azure MySQL Database 伺服器,並執行下列查詢。
    SELECT * FROM mysql.query_store where query_id = '<insert query id from Query performance insight blade in Azure portal';  // for queries in Query Store
    SELECT * FROM mysql.query_store_wait_stats where query_id = '<insert query id from Query performance insight blade in Azure portal';  // for wait statistics

您可以在圖表中按一下並拖曳來縮小到特定時間範圍。 或者,使用放大和縮小圖示,分別檢視一段較短或較長的時間。

等候的統計資料

注意

等候統計資料的目的是為了針對查詢效能問題進行疑難排解。 建議您只針對疑難排解目的開啟此功能。
如果您在 Azure 入口網站中收到此錯誤訊息:「'Microsoft.DBforMySQL' 遇到問題;無法完成要求。如果此問題持續發生或非預期,請連絡支援人員並提供此資訊。」(在檢視等候統計資料時),請使用較小的時間週期。

等候統計資料可讓您檢視執行特定查詢期間所發生的等候事件。 如需有關等候事件類型的詳細資訊,請參閱 MySQL 引擎文件

選取 [等候統計資料] 索引標籤,以檢視伺服器中等候的對應視覺效果。

[等候統計資料] 檢視中顯示的查詢會根據指定時間間隔內呈現最大等候資料的查詢來分組。

注意

不再支援顯示查詢文字,而且會顯示為空白。 系統會移除查詢文字,以避免查詢文字或基礎結構描述的未經授權存取情形,這可能會造成安全性風險。

檢視查詢文字的建議步驟如下:

  1. 在 Azure 入口網站的「查詢效能深入解析」刀鋒視窗中,識別熱門查詢的 query_id。
  2. 從 MySQL Workbench 或 mysql.exe 用戶端,或從您偏好的查詢工具,登入 Azure MySQL Database 伺服器,並執行下列查詢。
    SELECT * FROM mysql.query_store where query_id = '<insert query id from Query performance insight blade in Azure portal';  // for queries in Query Store
    SELECT * FROM mysql.query_store_wait_stats where query_id = '<insert query id from Query performance insight blade in Azure portal';  // for wait statistics

下一步

  • 深入了解如何在適用於 MySQL 的 Azure 資料庫中進行監視和微調