本頁面說明 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 執行個體」頁面。
。 - 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。。
- 在「設定」資訊方塊中,按一下「編輯設定」。
- 在「自訂執行個體」專區中,展開「查詢洞察資料」。
- 確認已啟用「啟用查詢洞察」。
- 如果尚未選取,請選取「啟用 Enterprise Plus 功能」。
- 選取「啟用索引建議工具」。
- 按一下 [儲存]。
停用索引建議工具建議
如要停用索引建議工具,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 在「設定」資訊方塊中,按一下「編輯設定」。
- 在「自訂執行個體」專區中,展開「查詢洞察資料」。
- 取消勾選「Enable index advisor」(啟用索引建議工具) 核取方塊。
- 按一下 [儲存]。
查看索引建議工具的建議
Cloud SQL 會自動定期執行索引顧問分析。如要查看索引建議工具的建議,請使用「查詢洞察」資訊主頁。 您也可以隨時查看及查詢索引顧問建議,並以表格形式呈現,或要求提供隨選分析和報表。
在「查詢洞察」資訊主頁中查看及篩選最佳化建議
-
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢深入分析資料」。
- 索引顧問建議會顯示在「熱門查詢和代碼」部分的「建議」欄中。
- 選用:如要只查看含有
CREATE INDEX
建議的查詢,請為「建議:建立索引」新增篩選器。
查看查詢的最佳化建議
如要查看特定查詢的索引建議,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢深入分析資料」。
- 在「熱門查詢和代碼」部分,按一下「查詢」。
- 如要取得查詢的建議詳細資料,請採取下列任一做法:
- 點選查詢即可進一步瞭解所選查詢的最佳化建議,包括下列資訊:
- 效能影響 (高、中和低):建立所有建議索引後的預估查詢速度。
- 最佳化建議:建立索引最佳化建議。
- 受影響的資料表:建立索引時,受影響的資料表數量。
- 預估所需額外儲存空間:建立所有建議索引所需的預估儲存空間大小。
- 受影響的查詢數量:工作負載中受索引最佳化建議影響的查詢總數。索引可為多項查詢帶來好處。
- 按一下特定查詢的「建立索引」,即可瞭解建立索引的詳細建議,以提高查詢效能。
- 點選查詢即可進一步瞭解所選查詢的最佳化建議,包括下列資訊:
以資料庫表格檢視建議
您可以透過下列位於各個資料庫中的表格檢視,查看結果: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;
手動要求索引分析
您可以要求 Cloud SQL for PostgreSQL 立即執行分析並顯示報告,而無須等待索引顧問下次排定分析作業。針對 PostgreSQL 適用的 Cloud SQL,您必須在啟用索引顧問後,至少等待 15 分鐘,才能執行手動分析。如要執行這項操作,請執行下列 SQL 函式:
SELECT * FROM google_db_advisor_recommend_indexes();
分析完成後,PostgreSQL 適用的 Cloud SQL 會以表格格式顯示報告,其中包含任何建議索引的說明和預估儲存空間需求。如果分析未找到可推薦的新索引,則檢視畫面不會包含任何列。
請注意,執行此指令的使用者角色會影響顯示的建議。PostgreSQL 適用的 Cloud SQL 會根據目前資料庫使用者發出的查詢,限制顯示索引建議。
建立建議的索引
您可以透過查詢洞察資訊主頁或資料庫資料表檢視畫面,建立建議的索引。
使用查詢洞察資訊資訊主頁建立建議的索引
如要使用「查詢洞察」資訊主頁建立建議的索引,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢深入分析資料」。
- 在「各資料庫負載的最大維度」表格中,按一下「查詢」。
- 按一下特定查詢的「建立索引」。
- 按一下「複製所有索引指令」。系統會將
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 執行個體」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢深入分析資料」。
- 在「各資料庫負載的最大維度」表格中,按一下「查詢」。
- 按一下特定查詢的「建立索引」。
- 按一下「顯示受影響的查詢」。
- 按一下查詢,即可瞭解受影響查詢的詳細資料。
查看索引建議工具追蹤的查詢
google_db_advisor_workload_statements
檢視畫面會列出索引顧問追蹤的所有查詢,以及每個查詢的重要中繼資料,例如下列指標:
- 執行個體執行每個查詢的次數
- 執行個體處理這些查詢所花費的總時間
- 執行這些查詢的資料庫使用者 ID
清除索引建議工具追蹤的查詢
您可以清除追蹤的查詢,藉此重設索引顧問在執行個體上的行為。如要執行這項操作,請執行下列 SQL 函式:
SELECT google_db_advisor_reset();
PostgreSQL 適用的 Cloud SQL 會立即清空索引顧問的追蹤查詢集合。