AlloyDB for PostgreSQL 提供索引建議,可追蹤資料庫經常處理的查詢。這項工具會定期分析這些查詢,並建議可提升查詢效能的新索引。
您可以將建議視為表格查看及查詢,也可以隨時要求進行隨選分析並產生報表。
事前準備
使用索引建議工具前,請先確認符合下列規定。
啟用必要擴充功能
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
在「資源名稱」欄中,按一下叢集。
在「查詢洞察」頁面中,按一下「編輯查詢設定」。
按一下「啟用索引建議工具」。
如要為可擴充的最近鄰 (ScaNN) 索引啟用向量搜尋索引建議,請啟用
scann.enable_preview_features
旗標 (預先發布版)。詳情請參閱「設定執行個體的資料庫旗標」。
查看索引建議工具的建議
AlloyDB 會定期自動執行索引建議分析。您可以透過每個資料庫中的兩個表格檢視畫面,查看實驗結果:
google_db_advisor_recommended_indexes
會列出資料庫的任何建議新索引。這份報告也包含每個索引所需的儲存空間預估值,以及每個索引可能影響的查詢數量。google_db_advisor_workload_report
會列出顧問建議一或多個新索引的每個查詢。每一列都會彙整相關查詢的建議。google_db_advisor.enable_vector_index_advisor
擴充功能可藉此為向量查詢建議索引。google_db_advisor
您也可以使用scann.enable_preview_features
標記 (位於「預覽」) 啟用這個標記。
舉例來說,如要查看最近一次索引建議分析的結果 (以表格格式呈現),請執行下列查詢:
SELECT * FROM google_db_advisor_recommended_indexes;
如果索引顧問的最新分析結果未提供任何建議,這項查詢就會傳回沒有資料列的資料表。
由於所有這些報表都是一般的資料庫檢視畫面,因此您可以編寫查詢,以任何方式篩選或呈現資訊。舉例來說,如要查看建議索引與完整相關聯查詢配對的報表,請在各自的 query_id
欄上,聯結 google_db_advisor_workload_report
和 google_db_advisor_workload_statements
檢視畫面:
SELECT DISTINCT recommended_indexes, query
FROM google_db_advisor_workload_report r, google_db_advisor_workload_statements s
WHERE r.query_id = s.query_id;
手動要求進行索引分析
您不必等待索引建議工具下次排定的分析作業,可以要求 AlloyDB 立即執行分析並顯示報表。如要執行這項操作,請執行下列 SQL 函式:
SELECT * FROM google_db_advisor_recommend_indexes();
分析完成後,AlloyDB 會顯示表格格式的報告,其中包含建議索引的說明和預估儲存空間需求。如果分析結果顯示沒有可建議的新索引,檢視畫面就不會包含任何資料列。
請注意,執行這項指令的 PostgreSQL 使用者角色可能會影響顯示的建議。如果這項查詢是由 postgres
或其他具有 alloydbsuperuser
角色的使用者執行,AlloyDB 會顯示索引建議工具目前的所有建議。否則,AlloyDB 只會根據目前資料庫使用者發出的查詢,顯示索引建議。
套用索引建議工具的建議
google_db_advisor_recommended_indexes
檢視區塊的 index
欄位在每個資料列中,都包含完整的 PostgreSQL CREATE INDEX
DDL 陳述式,用於產生該資料列中建議的索引。
如要套用該資料列的建議,請執行該 DDL 陳述式,包括複製到剪貼簿,然後貼到 psql
提示中。
舉例來說,請參考手動執行分析時的這項輸出內容,並使用上一節所述的查詢:
index | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
CREATE INDEX ON "School"."Students"("age") | 3
(1 row)
這份報表包含一項建議:在 School
結構定義的 Students
資料表中,為 age
資料欄新增單一資料欄索引。如要套用這項建議,請輸入 DDL 查詢,與報表中的內容完全一致:
CREATE INDEX ON "School"."Students"("age");
查看索引建議工具追蹤的查詢
「google_db_advisor_workload_statements
」檢視畫面會列出索引建議追蹤的所有查詢,以及每個查詢的重要中繼資料,例如下列指標:
- 執行個體執行這項查詢的次數
- 執行個體處理這些查詢的總時間
- 執行這些查詢的資料庫使用者 ID
清除索引建議工具追蹤的查詢
如要重設執行個體的索引建議行為,請清除追蹤的查詢。如要執行這項操作,請執行下列 SQL 函式:
SELECT google_db_advisor_reset();
AlloyDB 會立即清空索引建議工具的追蹤查詢集合。
設定索引建議工具
雖然索引顧問的預設設定適用於大多數用途,但您可以設定各種資料庫標記,微調其行為。詳情請參閱「索引建議指標」。