共用方式為


適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中的查詢效能深入解析

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

查詢效能深入解析為適用於 PostgreSQL 的 Azure 資料庫彈性伺服器資料庫提供智慧型查詢分析。 其有助於識別您的工作負載中最高資源取用和長時間執行的查詢。 這可協助您找到要最佳化的查詢,以改善整體工作負載效能,並有效率地使用您所支付的資源。 查詢效能深入解析提供了下列各項,能協助您以較少的時間來對資料庫效能進行疑難排解:

  • 識別長時間執行的查詢,以及它們隨著時間變更的情況。
  • 判斷影響這些查詢的等候類型。
  • 依呼叫 (執行計數)、資料使用量、IOPS 和暫存檔使用量排列的前幾名資料庫查詢相關詳細資料 (效能改進的可能微調候選項目)。
  • 能夠向下切入查詢的詳細資料,以檢視查詢識別碼和資源使用量的歷程記錄。
  • 深入了解整體資料庫資源取用量。

先決條件

  1. 查詢存放區已在您的資料庫上啟用。 如果查詢存放區未執行,Azure 入口網站會提示您將其啟用。 若要開啟查詢存放區,請參閱這裡

附註

查詢存放區目前已停用。 查詢效能深入解析取決於查詢存放區資料。 您必須將動態伺服器參數 pg_qs.query_capture_mode 設定為 ALLTOP 加以啟用。

  1. 查詢存放區等候取樣已在您的資料庫上啟用。 如果查詢存放區等候取樣未執行,Azure 入口網站會提示您將其啟用。 若要啟用查詢存放區等候取樣,請參閱這裡

附註

查詢存放區等候取樣目前已停用。 查詢效能深入解析取決於查詢存放區等候取樣資料。 您必須將動態伺服器參數 pgms_wait_sampling.query_capture_mode 設定為 ALL 來啟用它。

  1. Log Analytics 工作區 已設定為儲存 3 個記錄類別,包括 - 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器工作階段記錄、適用於 PostgreSQL 的 Azure 資料庫彈性伺服器查詢存放區和執行階段,以及適用於 PostgreSQL 的 Azure 資料庫彈性伺服器查詢存放區等候統計資料。 若要設定記錄分析,請參閱 Log Analytics 工作區

附註

查詢存放區資料不會傳送至 log Analytics 工作區。 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器記錄 (工作階段資料 / 查詢存放區執行階段 / 查詢存放區等候統計資料) 不會傳送至記錄分析工作區,這是使用查詢效能深入解析的必要條件。 若要設定適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的診斷設定,並將數據傳送至記錄分析工作區,請參閱 設定及存取適用於 PostgreSQL 的 Azure 資料庫中的記錄彈性伺服器

權限

您需要下列 Azure 角色型存取控制 (Azure RBAC) 權限指派給適用於 PostgreSQL 的 Azure 資料庫彈性伺服器,才能使用查詢效能深入解析:

  • Microsoft.DBforPostgreSQL/flexibleServers/configurations/read
  • Microsoft.DBforPostgreSQL/flexibleServers/providers/Microsoft.Insights/diagnosticSettings/read
  • Microsoft.DBforPostgreSQL/flexibleServers/read
  • Microsoft.Insights/Components/read
  • Microsoft.Insights/DiagnosticSettings/read
  • Microsoft.Insights/DiagnosticSettingsCategories/read
  • Microsoft.Insights/Logs/AzureDiagnostics/read
  • Microsoft.Insights/Logs/read

使用查詢效能深入解析

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

  1. 開啟 Azure 入口網站,尋找您想要檢查的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。

  2. 從左側功能表中,開啟 [智慧效能]>[查詢效能深入解析]

  3. 選取時間範圍以便調查查詢。

  4. 在第一個索引標籤上,檢閱長時間執行的查詢清單。

  5. 使用滑桿或縮放功能來變更觀測的間隔。 使用滑桿來變更觀察間隔的螢幕擷取畫面。

  6. 您可以選擇性地選取自訂來指定時間範圍。

附註

查詢存放區需要擷取數小時的資料適用於 PostgreSQL 的 Azure 資料庫彈性伺服器才能在「查詢效能深入解析」中呈現資訊。 如果在某段時間內資料庫沒有活動,或查詢存放區處於非作用中狀態,則在「查詢效能深入解析」顯示該時間範圍時,圖表將是空的。 如果查詢存放區未執行,您可以隨時加以啟用。 如需詳細資訊,請參閱查詢存放區的最佳做法

  1. 若要檢視特定查詢的詳細資料,請按一下 QueryId Snapshot 下拉式清單。 檢視特定查詢詳細資料的螢幕擷取畫面。

  2. 若要取得特定查詢的查詢文字,請連線到伺服器上的 azure_sys 資料庫,並使用 query_store.query_texts_view 查詢 QueryId取得特定查詢的查詢文字的螢幕擷取畫面。

  3. 在 [連續] 索引標籤上,您可找到其他查詢深入解析,包括:

    • 等候統計
    • 依呼叫排列的前幾名查詢
    • 依資料使用量排序排列的前幾名查詢
    • 依 IOPS 排列的前幾名查詢
    • 依暫存檔排列的前幾名查詢

考量

  • 查詢效能深入解析不適用於讀取複本
  • 資料必須存在於查詢存放區中,查詢效能深入解析才能運作。 查詢存放區是選擇加入的功能,因此依預設不會在伺服器上啟用。 查詢存放區是針對指定伺服器上的所有資料庫全域啟用或停用的,並無法個別開啟或關閉資料庫。
  • 在可高載定價層上啟用查詢存放區可能會對效能造成負面影響;因此,不建議在該層上將其啟用。