設定適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器 (預覽) 中的索引微調功能
適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
您可以透過一組控制行為的參數來啟用、停用和設定索引微調,例如微調工作階段的執行頻率。
啟用索引微調
索引微調取決於使用查詢存放區監視效能。 不建議在高載定價層上啟用查詢存放區,因為可能會造成效能影響。 基於相同原因,不建議高載層上的伺服器執行索引微調。
索引微調是選擇加入的功能,依預設不會在伺服器上啟用。 此功能會在指定伺服器上的所有資料庫中全域啟用或停用,並無法在每個資料庫中個別開啟或關閉。
在 Azure 入口網站中啟用索引微調 (透過伺服器參數)
登入 Azure 入口網站,然後選取適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
在功能表的 [設定] 區段中,選取 [伺服器參數]。
搜尋
pg_qs.query_capture_mode
參數。視您要追蹤最上層或巢狀查詢而定,將值設定為
TOP
或ALL
。 巢狀查詢是在函式或程序內執行的查詢。 若要檢視索引微調的最大優點,建議將此參數設定為ALL
。搜尋
index_tuning.mode
參數,並將其值設定為REPORT
。選取 [儲存]。
在考慮啟用功能之前,請等候部署順利完成。
在 Azure 入口網站中啟用索引微調 (透過索引微調)
登入 Azure 入口網站,然後選取適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
選取功能表 [智慧型效能] 區段中的 [索引微調 (預覽)]。
如果
pg_qs.query_capture_mode
設定為NONE
或index_tuning.mode
設定為OFF
,索引微調頁面會提供啟用索引微調的選項。選取兩個啟用索引微調按鈕中的其中一個,以啟用索引微調功能及其所需的查詢存放區相依性,前提是查詢存放區已停用。
啟用索引微調之後,索引微調引擎有有 12 小時的時間分析查詢存放區在該期間內所收集到的工作負載,最後產生建立或卸除索引建議。
重要
透過 [啟用索引微調] 按鈕啟用索引調整功能時,如果 pg_qs.query_capture_mode
設定為 NONE
,則會設定為 ALL
。 如果已設定為 TOP
或 ALL
,則會保持其目前的狀態。
停用索引微調
您也可以變更對應的伺服器參數,或利用 [索引微調 (預覽)] 頁面來停用索引微調。
在 Azure 入口網站中停用索引微調 (透過伺服器參數)
登入 Azure 入口網站,然後選取適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
在功能表的 [設定] 區段中,選取 [伺服器參數]。
搜尋
index_tuning.mode
參數,並將其值設定為OFF
。停用索引調整並不會自動停用查詢存放區。 評估您是否要繼續透過使用查詢存放區監視效能來監視工作負載的效能,並將它保留在啟用狀態,或如果您想要停用它,請將
pg_qs.query_capture_mode
設定為NONE
。選取 [儲存]。
在考慮停用功能之前,請等候部署順利完成。
在 Azure 入口網站中停用索引微調 (透過索引微調)
登入 Azure 入口網站,然後選取適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。
選取功能表 [查詢效能深入解析] 區段中的 [索引微調 (預覽)]。
選取 [停用索引微調] 按鈕以停用此功能。
評估您是否要繼續透過使用查詢存放區監視效能來監視工作負載的效能,並將它保留在啟用狀態,或如果您想要停用它,請將
pg_qs.query_capture_mode
設定為NONE
。
重要
透過 [停用索引微調] 按鈕停用索引微調功能時,伺服器參數 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_mode 設定為 TOP 或 ALL ,要求啟用查詢存放區。 |
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 |