查詢效能深入解析可為「適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器」執行個體中的資料庫提供智慧型查詢分析。 其有助於識別您的工作負載中最高資源取用和長時間執行的查詢。 這可協助您找到要最佳化的查詢,以改善整體工作負載效能,並有效率地使用您所支付的資源。 查詢效能深入解析提供了下列各項,能協助您以較少的時間來對資料庫效能進行疑難排解:
- 識別長時間執行的查詢,以及它們隨著時間變更的情況。
- 判斷影響這些查詢的等候類型。
- 依呼叫 (執行計數)、資料使用量、IOPS 和暫存檔使用量排列的前幾名資料庫查詢相關詳細資料 (效能改進的可能微調候選項目)。
- 能夠向下切入查詢的詳細資料,以檢視查詢識別碼和資源使用量的歷程記錄。
- 深入了解整體資料庫資源取用量。
先決條件
附註
查詢存放區目前已停用。 查詢效能深入解析取決於查詢存放區資料。 您必須將動態伺服器參數 pg_qs.query_capture_mode 設定為 ALL 或 TOP 加以啟用。
附註
查詢存放區等候取樣目前已停用。 查詢效能深入解析取決於查詢存放區等候取樣資料。 您必須將動態伺服器參數 pgms_wait_sampling.query_capture_mode 設定為 ALL 來啟用它。
- Log Analytics 工作區已設定為儲存 3 個記錄類別,包括 -「適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器」執行個體工作階段記錄、「適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器」執行個體查詢存放區和執行階段,以及「適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器」執行個體查詢存放區等候統計資料。 若要設定記錄分析,請參閱 Log Analytics 工作區。
附註
查詢存放區資料不會傳送至 log Analytics 工作區。 記錄 (工作階段資料/查詢存放區執行階段/查詢存放區等候統計資料) 不會傳送至 Log Analytics 工作區,這是使用 Query Performance Insight 的必要條件。 若要設定 Azure Database for PostgreSQL 彈性伺服器執行個體的診斷設定,並將資料傳送至 Log Analytics 工作區,請參閱 在 Azure Database for PostgreSQL 中設定和存取記錄。
權限
您需要指派給「適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器」執行個體的下列 Azure 角色型存取控制 (Azure RBAC) 權限,才能使用查詢效能深入解析:
- 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 入口網站中的查詢效能深入解析檢視會以視覺效果呈現來自查詢存放區的重要資訊。 「查詢效能深入解析」很容易使用:
開啟 Azure 入口網站,尋找您想要檢查的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
從左側功能表中,開啟 [智慧效能]>[查詢效能深入解析]。
選取時間範圍以便調查查詢。
在第一個索引標籤上,檢閱長時間執行的查詢清單。
使用滑桿或縮放功能來變更觀測的間隔。
您可以選擇性地選取自訂來指定時間範圍。
附註
若要讓 Azure Database for PostgreSQL 彈性伺服器執行個體在 Query Performance Insight 中顯示資訊,查詢存放區必須擷取幾個小時的資料。 如果在某段時間內資料庫沒有活動,或查詢存放區處於非作用中狀態,則在「查詢效能深入解析」顯示該時間範圍時,圖表將是空的。 如果查詢存放區未執行,您可以隨時加以啟用。 如需詳細資訊,請參閱查詢存放區的最佳做法。
若要檢視特定查詢的詳細資料,請按一下
QueryId Snapshot下拉式清單。
若要取得特定查詢的查詢文字,請連線到伺服器上的
azure_sys資料庫,並使用query_store.query_texts_view查詢QueryId。
在 [連續] 索引標籤上,您可找到其他查詢深入解析,包括:
- 等候統計
- 依呼叫排列的前幾名查詢
- 依資料使用量排序排列的前幾名查詢
- 依 IOPS 排列的前幾名查詢
- 依暫存檔排列的前幾名查詢
考量
- 查詢效能深入解析不適用於讀取複本。
- 資料必須存在於查詢存放區中,查詢效能深入解析才能運作。 查詢存放區是選擇加入的功能,因此依預設不會在伺服器上啟用。 查詢存放區是針對指定伺服器上的所有資料庫全域啟用或停用的,並無法個別開啟或關閉資料庫。
- 在可高載定價層上啟用查詢存放區可能會對效能造成負面影響;因此,不建議在該層上將其啟用。