本頁面說明 PostgreSQL 適用的 Cloud SQL 索引建議工具,以及如何查看和套用索引建議。
PostgreSQL 適用的 Cloud SQL 提供全代管的索引建議工具,可追蹤資料庫定期處理的查詢。索引建議工具會定期分析這些查詢,建議可提升查詢效能的新索引。索引建議工具可協助您偵測及修正系統和查詢的效能問題。
索引顧問的運作方式
索引建議工具可協助您改善查詢處理作業,方法如下:
- 建議一組索引,並提供建立索引的 SQL 指令。
- 提供資料,協助您評估建議的索引,例如預估的儲存空間大小,以及索引對查詢的影響。
CREATE INDEX
指令,其中包含資料庫名稱、結構定義名稱、資料表名稱和資料欄名稱。追蹤的查詢都是經過正規化的查詢,且已移除所有常值。
索引建議會經過靜態資料加密。
限制
PostgreSQL 適用的 Cloud SQL 索引建議工具具有下列限制:
- 索引建議工具只會提供
CREATE INDEX
建議。 - 索引建議工具不支援下列設定的執行個體:
- Cloud SQL Enterprise 版執行個體
- 唯讀備用資源執行個體
事前準備
如要取得索引建議,您必須使用 Cloud SQL Enterprise Plus 版本,並為 Cloud SQL 執行個體啟用 Cloud SQL Enterprise Plus 版本的查詢洞察。
必要角色和權限
如要取得取得索引建議所需的權限,請要求管理員授予您 Cloud SQL 執行個體所在專案的 Cloud SQL 檢視者 (roles/cloudsql.viewer
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備取得索引建議所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要取得索引建議,必須具備下列權限:
-
databaseinsights.recommendations.query
-
databaseinsights.resourceRecommendations.query
啟用索引建議工具建議
如要啟用索引建議工具建議,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
。 - 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。 。
- 在「設定」方塊中,按一下「編輯設定」。
- 在「自訂執行個體」部分,展開「查詢洞察」。
- 確認已啟用「啟用查詢洞察」。
- 如果尚未選取,請選取「啟用 Enterprise Plus 功能」。
- 選取「啟用索引建議工具」。
- 按一下 [儲存]。
停用索引建議工具建議
如要停用索引建議工具的建議,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 在「設定」方塊中,按一下「編輯設定」。
- 在「自訂執行個體」部分,展開「查詢洞察」。
- 取消勾選「啟用索引建議工具」核取方塊。
- 按一下 [儲存]。
查看索引建議工具建議
Cloud SQL 會定期自動執行索引建議分析。如要查看索引建議工具的建議,請使用「查詢洞察」資訊主頁。 您也可以隨時以表格或要求形式查看及查詢索引顧問建議,或要求隨選分析和報表。
在查詢洞察資訊主頁中查看及篩選建議
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 索引顧問建議會顯示在「熱門查詢和標記」部分的「建議」欄中。
- 選用:如要只查看有
CREATE INDEX
建議的查詢,請新增「建議:建立索引」篩選條件。
查看查詢的最佳化建議
如要查看特定查詢的索引建議,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 在「熱門查詢和標記」部分,按一下「查詢」。
- 如要查看查詢的建議詳細資料,請執行下列其中一項操作:
- 按一下查詢,進一步瞭解所選查詢的建議,包括下列資訊:
- 效能影響 (高、中和低):建立所有建議索引後,預估的查詢速度。
- 建議:建立索引建議。
- 受影響的資料表:建立索引時受影響的資料表數量。
- 額外預估儲存空間需求:建立所有建議索引所需的預估儲存空間大小。
- 受影響的查詢數量:受索引建議影響的工作負載查詢總數。索引可提升多項查詢的效能。
- 按一下特定查詢的「建立索引」,即可查看建立索引的詳細建議,進而提升查詢效能。
- 按一下查詢,進一步瞭解所選查詢的建議,包括下列資訊:
以資料庫表格檢視畫面查看建議
您可以在每個資料庫中,透過下列表格檢視畫面查看結果:google_db_advisor_recommended_indexes
:列出每個資料庫建議的新索引。這份報告也包含每個索引所需的儲存空間預估值,以及每個索引可能影響的查詢數量。google_db_advisor_workload_report
:列出顧問建議一或多個新索引的每個查詢。每一列都會彙整相關查詢的建議。
舉例來說,如要以表格格式查看最近一次索引建議分析的結果,請執行下列查詢:
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;
手動要求進行索引分析
您不必等待索引建議工具的下一次排定分析,可以要求 PostgreSQL 適用的 Cloud SQL 立即執行分析並顯示報告。如果是 PostgreSQL 適用的 Cloud SQL,啟用索引建議工具後,至少要等待 15 分鐘,才能執行手動分析。如要執行這項操作,請執行下列 SQL 函式:
SELECT * FROM google_db_advisor_recommend_indexes();
分析完成後,PostgreSQL 適用的 Cloud SQL 會顯示表格格式的報表,其中包含建議索引的說明和預估儲存空間需求。如果分析結果顯示沒有可建議的新索引,檢視畫面就不會包含任何資料列。
請注意,執行這項指令的使用者角色可能會影響顯示的建議。PostgreSQL 適用的 Cloud SQL 只會根據目前資料庫使用者發出的查詢,顯示索引建議。
建立建議的索引
您可以從「查詢洞察」資訊主頁或資料庫表格檢視畫面建立建議索引。
使用查詢洞察資訊主頁建立建議的索引
如要使用「查詢洞察」資訊主頁建立建議的索引,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 在「各資料庫負載的最大維度」表格中,按一下「查詢」。
- 按一下特定查詢的「建立索引」。
- 按一下「複製所有索引指令」。
CREATE INDEX
指令會複製到剪貼簿。 - 透過指令列連線至主要執行個體。
如要建立建議的索引,請執行複製到剪貼簿的指令,例如:
CREATE INDEX ON "public"."demo_order" ("customer_id");
使用資料庫表格檢視畫面建立建議的索引
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 Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 在「各資料庫負載的最大維度」表格中,按一下「查詢」。
- 按一下特定查詢的「建立索引」。
- 按一下「顯示受影響的查詢」。
- 按一下查詢,即可瞭解受影響查詢的詳細資料。
查看索引建議工具追蹤的查詢
「google_db_advisor_workload_statements
」檢視畫面會列出索引建議追蹤的所有查詢,以及每個查詢的重要中繼資料,例如下列指標:
- 執行個體執行各項查詢的次數
- 執行個體處理這些查詢所花費的總時間
- 執行這些查詢的資料庫使用者 ID
清除索引建議工具追蹤的查詢
如要重設執行個體的索引建議行為,請清除追蹤的查詢。如要執行這項操作,請執行下列 SQL 函式:
SELECT google_db_advisor_reset();
PostgreSQL 適用的 Cloud SQL 會立即清空索引建議工具的追蹤查詢集合。