共用方式為


在 適用於 PostgreSQL 的 Azure 資料庫 中設定索引微調 - 彈性伺服器

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

您可以透過一 組可控制其行為的參數 來啟用、停用及設定索引微調,例如微調會話的執行頻率。

啟用索引微調

索引微調取決於 查詢存放區。 不建議在高載定價層上啟用查詢存放區,以取得其可能具有的效能影響。 基於相同原因,不建議高載層上的伺服器執行索引微調。

索引微調是選擇加入的功能,依預設不會在伺服器上啟用。 此功能會在指定伺服器上的所有資料庫中全域啟用或停用,並無法在每個資料庫中個別開啟或關閉。

在 Azure 入口網站中啟用索引微調 (透過伺服器參數)

使用 Azure 入口網站

  1. 選取適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器執行個體。

  2. 在資源功能表中的 [設定] 區段下,選取 [伺服器參數]。

    顯示 [設定] 區段下 [伺服器參數] 頁面的螢幕快照。

  3. 搜尋 pg_qs.query_capture_mode

    顯示如何搜尋 pg_qs.query_capture_mode 伺服器參數的螢幕快照。

  4. 視您要追蹤最上層或巢狀查詢而定,將其值設定為 TOPALL。 巢狀查詢是在函式或程序內執行的查詢。 若要檢視索引微調的最大優點,建議將此參數設定為 ALL

    此螢幕擷取畫面顯示如何設定 pg_qs.query_capture_mode 伺服器參數的值。

  5. 搜尋 index_tuning.mode

    顯示如何搜尋 index_tuning.mode 伺服器參數以將它設定為 REPORT 的螢幕快照。

  6. 將值設定為 REPORT

    顯示如何將 index_tuning.mode 值設定為 REPORT 的螢幕快照。

注意

停用索引調整不會自動停用查詢存放區。 評估您是否要繼續使用 監視查詢存放區的 監視效能,以監視工作負載的效能,並讓它保持啟用,或者,如果您想要停用它,請將 設定 pg_qs.query_capture_modeNONE

  1. 選取 [儲存]

    顯示如何儲存已修改參數以啟用索引微調的螢幕快照。

  2. 在考慮啟用此功能之前,請等候部署順利完成。

    此螢幕擷取畫面顯示如何起始部署,以便在順利完成時儲存修改的伺服器參數。

在 Azure 入口網站中啟用索引微調 (透過索引微調)

使用 Azure 入口網站

  1. 選取適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器執行個體。

  2. 在資源功能表中的 [查詢效能深入解析] 區段底下,選取 [索引微調]。

    顯示 [查詢效能深入解析] 區段下 [索引微調] 功能表選項的螢幕快照,以啟用索引微調。

  3. pg_qs.query_capture_mode如果 設定為 NONEindex_tuning.mode 設定為 OFF,[索引微調] 頁面會提供啟用索引微調的選項。 選取兩 個 [啟用索引微調] 按鈕之一,以啟用索引微調 功能及其必要的查詢存放區相依性,如果查詢存放區已停用。

    顯示如何透過 [索引微調] 頁面啟用索引微調的螢幕快照。

  4. 在考慮此功能之前,請等候部署順利完成。

    顯示完成部署以啟用索引微調的螢幕快照。

  5. 啟用索引微調之後,允許索引微調引擎 12 小時分析該時間期間查詢存放區所收集的工作負載,最後會產生建立或卸除索引建議。

重要

透過 [ 啟用索引微調] 按鈕啟用索引調整 時,如果 pg_qs.query_capture_mode 設定為 NONE,則會變更為 ALL。 如果它已設定為 TOPALL,則會保持其目前狀態。

停用索引微調

您也可以變更對應的伺服器參數或使用 [索引微調] 頁面,來停用索引微調

在 Azure 入口網站中停用索引微調 (透過伺服器參數)

使用 Azure 入口網站

  1. 選取適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器執行個體。

  2. 在資源功能表中的 [設定] 區段下,選取 [伺服器參數]。

    顯示 [設定] 區段下 [伺服器參數] 頁面的螢幕快照。

  3. 搜尋 index_tuning.mode

    顯示如何搜尋 index_tuning.mode 伺服器參數以將其設定為 OFF 的螢幕快照。

  4. 將值設定為 OFF

    顯示如何將 index_tuning.mode 值設定為 OFF 的螢幕快照。

注意

停用索引調整不會自動停用查詢存放區。 評估您是否要繼續使用 監視查詢存放區的 監視效能,以監視工作負載的效能,並讓它保持啟用,或者,如果您想要停用它,請將 設定 pg_qs.query_capture_modeNONE

  1. 選取 [儲存]

    顯示如何儲存已修改參數以停用索引微調的螢幕快照。

  2. 在考慮停用功能之前,請等候部署順利完成。

    此螢幕擷取畫面顯示如何起始部署,以便在順利完成時儲存修改的伺服器參數。

在 Azure 入口網站中停用索引微調 (透過索引微調)

使用 Azure 入口網站

  1. 選取適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器執行個體。

  2. 在資源功能表中的 [查詢效能深入解析] 區段底下,選取 [索引微調]。

    顯示 [查詢效能深入解析] 區段下 [索引微調] 功能表選項的螢幕快照,以停用索引微調。

  3. 選取 [ 停用索引微調] 按鈕以停用此功能。

    顯示如何透過 [索引微調] 頁面停用索引微調的螢幕快照。

  4. 在考慮此功能之前,請等候部署順利完成。

    顯示完成以停用索引微調之部署的螢幕快照。

  5. 評估您是否要繼續使用 監視查詢存放區的 監視效能,以監視工作負載的效能,並讓它保持啟用,或者,如果您想要停用它,請將 設定 pg_qs.query_capture_modeNONE

重要

透過 [停用索引微調] 按鈕停用索引微調功能時,伺服器參數 pg_qs.query_capture_mode 保持不變。

設定選項

啟用索引調整時,它會以伺服器參數中 index_tuning.analysis_interval 設定的頻率喚醒(預設值為 720 分鐘或 12 小時),並開始分析查詢存放區在該期間記錄的工作負載。

請注意,如果您變更 index_tuning.analysis_interval 的值,則只有在下一個排程執行完成後,才能觀察到該值。 因此,例如,如果您在上午 10:00 啟用索引調整一天,因為的預設值 index_tuning.analysis_interval 是 720 分鐘,則第一次執行會排定於當天下午 10:00 開始。 您對上午 10:00 到下午 10:00 之間的值 index_tuning.analysis_interval 所做的任何變更都不會影響該初始排程。 只有當排程執行完成時,才會讀取 index_tuning.analysis_interval 設定的現行值,並且根據該值排程下一次執行。

下列選項可用於設定索引微調參數:

參數 說明 Default 範圍 單位
index_tuning.analysis_interval 設定當 index_tuning.mode 設為 REPORT 時,觸發每個索引最佳化工作階段的頻率。 720 60 - 10080 分鐘
index_tuning.max_columns_per_index 可以成為建議索引中索引鍵一部分的資料行數目上限。 2 1 - 10
index_tuning.max_index_count 在一個最佳化工作階段期間,每個資料庫的建議索引數上限。 10 1 - 25
index_tuning.max_indexes_per_table 每個資料表的可建議索引數上限。 10 1 - 25
index_tuning.max_queries_per_database 每個資料庫中可以建議索引的最慢查詢數。 25 5 - 100
index_tuning.max_regression_factor 對於在一個最佳化工作階段期間內分析的任何查詢,建議索引產生的可接受迴歸。 0.1 0.05 - 0.2 percentage
index_tuning.max_total_size_factor 任何指定資料庫可以使用的所有建議索引總大小上限,以總磁碟空間百分比表示。 0.1 0 - 1 percentage
index_tuning.min_improvement_factor 針對至少一個在一個最佳化工作階段期間分析的查詢,建議索引必須提供的成本改善。 0.2 0 - 20 percentage
index_tuning.mode 將索引最佳化設定為停用 (OFF) 或啟用,以便只發出建議。 需要藉由將 設定 pg_qs.query_capture_modeTOPALL來啟用查詢存放區。 OFF OFF, REPORT
index_tuning.unused_dml_per_table 影響資料表的每日平均 DML 作業數目下限,因此會考慮卸除未使用的索引。 1000 0 - 9999999
index_tuning.unused_min_period 根據系統統計資料,考慮要將其卸除的索引未使用天數下限。 35 30 - 70
index_tuning.unused_reads_per_table 影響資料表的每日平均讀取作業數目下限,因此會考慮卸除未使用的索引。 1000 0 - 9999999