查詢存放區的使用案例

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

重要

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

您可以在各種不同的案例中使用 查詢存放區,其中追蹤和維護可預測的工作負載效能非常重要。 請參考下列範例:

  • 識別和調整最昂貴的查詢
  • A/B 測試
  • 在升級期間保持效能穩定
  • 識別及改善臨機操作工作負載

識別和調整昂貴的查詢

識別執行時間最長的查詢

使用 Azure 入口網站 中的查詢效能深入解析檢視,快速識別執行時間最長的查詢。 這些查詢通常會耗用大量的資源。 優化您最長執行的問題,可以釋出資源供系統上執行的其他查詢使用,以改善效能。

以效能差異為目標的查詢

查詢存放區 將效能數據分割成時間範圍,因此您可以追蹤一段時間的查詢效能。 這可協助您確切識別哪些查詢有助於增加整體花費的時間。 因此,您可以針對工作負載進行目標疑難解答。

調整昂貴的查詢

當您識別具有次佳效能的查詢時,您採取的動作取決於問題的本質:

  • 使用效能 建議 來判斷是否有任何建議的索引。 如果是,請建立索引,然後使用 查詢存放區 在建立索引之後評估查詢效能。
  • 針對查詢所使用的基礎資料表,確定其中的統計資料為最新。
  • 請考慮重寫昂貴的查詢。 例如,利用查詢參數化並減少動態 SQL 的使用。 在讀取數據時實作最佳邏輯,例如在資料庫端套用數據篩選,而不是在應用程式端。

A/B 測試

使用 查詢存放區 來比較您計劃引進的應用程式變更前後的工作負載效能。 使用 查詢存放區 評估環境或應用程式變更對工作負載效能影響的案例範例:

  • 推出新版本的應用程式。
  • 將其他資源新增至伺服器。
  • 在成本昂貴查詢所參考資料表上建立遺漏的索引。

在這些案例中,請套用下列工作流程:

  1. 在計劃性變更之前,使用 查詢存放區 執行您的工作負載,以產生效能基準。
  2. 在受控制的時間點套用應用程式變更。
  3. 在變更之後,繼續執行足以產生系統效能映像的工作負載。
  4. 比較變更前後的結果。
  5. 決定是否要保留變更或復原。

識別並改善臨機操作工作負載

某些工作負載沒有您可以微調以提升整體應用程式效能的主要查詢。 這些工作負載通常會以相對大量的唯一查詢來描述,每個查詢都會耗用系統資源的一部分。 每個唯一查詢不常執行,因此個別的運行時間耗用量並不重要。 另一方面,假設應用程式一直產生新的查詢,系統資源的很大一部分會花在查詢編譯上,這並非最佳。 通常,如果您的應用程式產生查詢(而不是使用預存程式或參數化查詢),或它依賴預設產生查詢的對象關係型對應架構,就會發生這種情況。

如果您控制應用程式程式代碼,您可以考慮重寫資料存取層以使用預存程式或參數化查詢。 不過,如果沒有應用程式變更,也可以藉由強制整個資料庫(所有查詢)或具有相同查詢哈希的個別查詢範本進行查詢參數化,來改善這種情況。

下一步