使用查詢洞察改善查詢效能

本頁面說明如何使用「查詢洞察」資訊主頁,偵測及分析查詢效能問題。

簡介

查詢洞察可協助您偵測、診斷及預防 Cloud SQL 資料庫的查詢效能問題。這項功能支援直覺化的監控,並提供診斷資訊,協助您在偵測到效能問題後,進一步找出根本原因。

有了查詢洞察,您就能在應用程式層級監控效能,並依模型、檢視畫面、控制器、路徑、使用者和主機,追蹤應用程式堆疊中問題查詢的來源。查詢洞察工具可使用開放標準和 API,與現有的應用程式監控 (APM) 工具和 Google Cloud服務整合。這樣一來,您就能使用偏好的工具監控及排解查詢問題。

查詢洞察會引導您完成下列步驟,協助您提升 Cloud SQL 查詢效能:

Cloud SQL Enterprise Plus 版本的查詢洞察

如果您使用的是 Cloud SQL Enterprise Plus 版本,則可存取查詢洞察中的其他功能,執行進階查詢效能診斷。除了查詢洞察資訊主頁的標準功能外,Cloud SQL Enterprise Plus 版的查詢洞察還可讓您執行下列操作:

  • 擷取及分析所有已執行查詢的等待事件。
  • 依其他維度 (例如查詢、標記、等待事件類型等) 篩選匯總的資料庫負載。
  • 擷取所有已執行查詢的查詢計畫。
  • 每分鐘最多可取樣 200 個查詢計畫。
  • 擷取較長的查詢文字,上限為 100 KB。
  • 近乎即時地取得指標更新 (以秒為單位)。
  • 將指標保留時間延長至 30 天。
  • 從索引建議工具取得索引建議。
  • 終止執行中查詢的工作階段或長時間執行的交易。
  • 使用 AI 輔助疑難排解功能 (預先發布版)。

下表比較 Cloud SQL Enterprise 版和 Cloud SQL Enterprise Plus 版的查詢洞察功能需求和功能。

比較區域 Cloud SQL Enterprise 版的查詢洞察 Cloud SQL Enterprise Plus 版本的查詢洞察
支援的資料庫版本 PostgreSQL 9.6 以上版本 PostgreSQL 12 以上版本
支援的機型 支援所有機型 不支援使用共用核心機型的執行個體,或唯讀副本執行個體
支援地區 Cloud SQL 區域位置 Cloud SQL Enterprise Plus 版區域位置
指標保留期限 7 天 30 天
查詢長度上限 4500 個位元組 100 KB
查詢計畫範例數量上限 20 200
等待事件分析 無法使用 適用
索引建議工具建議 無法使用 適用
終止執行中查詢的工作階段或長時間執行的交易 無法使用 適用
AI 輔助疑難排解 (預先發布版) 無法使用 適用
查詢基數限制 回報最多前 100 項查詢的匯總統計資料,其中包含用戶端 IP 位址、資料庫、應用程式標記、使用者名稱和查詢文字的組合 (每天)。 每分鐘回報最多 4,000 個查詢的匯總統計資料,其中包含應用程式標記、資料庫、使用者名稱和查詢 ID 的組合。

啟用 Cloud SQL Enterprise Plus 版本的查詢洞察功能

如要為 Cloud SQL Enterprise Plus 版本啟用查詢洞察,請在 Cloud SQL Enterprise Plus 版本執行個體啟用查詢洞察時,選取「啟用 Enterprise Plus 功能」。

定價

Cloud SQL Enterprise 版或 Cloud SQL Enterprise Plus 版執行個體的查詢洞察功能不需額外付費。

儲存空間需求

Cloud SQL Enterprise 版的查詢洞察不會占用 Cloud SQL 執行個體儲存空間。指標會儲存在 Cloud Monitoring。如需 API 要求,請參閱 Cloud Monitoring 定價。Cloud Monitoring 提供免付費方案。

Cloud SQL Enterprise Plus 版本的查詢洞察功能會將指標資料儲存在 Cloud SQL 執行個體附加的磁碟,因此您必須啟用自動增加儲存空間設定。

七天份資料的儲存空間需求約為 36 GB。30 天則需要約 155 GB。Cloud SQL Enterprise Plus 版本的查詢洞察最多會使用 10 MB 的 RAM (共用記憶體)。查詢完成後,指標預計會在 30 秒內顯示在查詢洞察中。須支付適用儲存費用。

限制

Cloud SQL Enterprise Plus 版本執行個體的查詢洞察功能有下列限制:

  • 如果執行個體承受沉重的系統負載,當您在「查詢洞察」資訊主頁中查詢指標資料時,查詢載入速度可能會變慢或逾時。
  • 從舊備份還原 Cloud SQL Enterprise Plus 版執行個體的查詢洞察時,可能會遺失備份建立時間到執行個體還原時間之間收集的指標。舉例來說,如果您在 4 月 30 日使用 4 月 25 日建立的備份還原執行個體,可能會遺失 4 月 25 日至 4 月 30 日之間的所有指標。
  • 如果執行個體使用 PostgreSQL 18,且執行的維護版本早於 20260319.00_RC02,且查詢在 SQL 陳述式開頭前有註解標記,則使用查詢洞察時,可能不會儲存應用程式標記。這項限制適用於 Cloud SQL Enterprise Plus 版本和 Cloud SQL Enterprise 版本執行個體。

事前準備

使用查詢洞察前,請先完成下列步驟。

  1. 新增必要角色和權限。
  2. 啟用 Cloud Trace API。
  3. 如果您使用 Cloud SQL Enterprise Plus 版本的查詢洞察,請確認執行個體已啟用「Enable automatic storage increases」(啟用自動增加儲存空間)。

必要角色和權限

如要取得在「查詢洞察」資訊主頁中存取歷來查詢執行資料所需的權限,請要求管理員在託管 Cloud SQL 執行個體的專案中,授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

啟用 Cloud Trace API

如要查看查詢計畫和端對端檢視畫面, Google Cloud 專案必須啟用 Cloud Trace API。這項設定可讓Google Cloud 專案接收來自已驗證來源的追蹤記錄資料,不需額外付費。這項資料有助於偵測及診斷執行個體的效能問題。

如要確認 Cloud Trace API 是否已啟用,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「APIs and Services」(API 和服務):

    前往「APIs and Services」(API 和服務) 頁面

  2. 點選「啟用 API 和服務」。
  3. 在搜尋列中輸入 Cloud Trace API。
  4. 如果畫面上顯示「API enabled」(API 已啟用),代表這個 API 已啟用,您不需執行任何操作。否則,請按一下「Enable」(啟用)。

啟用自動增加儲存空間

如果您使用 Cloud SQL Enterprise Plus 版本的查詢洞察,請務必啟用自動增加儲存空間的執行個體設定。根據預設,Cloud SQL 執行個體會啟用這個選項。

如果您先前停用這項執行個體設定,並想為 Cloud SQL Enterprise Plus 版本啟用查詢洞察,請先重新啟用自動增加儲存空間功能。Cloud SQL Enterprise Plus 版本無法停用自動增加儲存空間功能,也無法啟用查詢洞察。

啟用查詢洞察

啟用查詢洞察前,請注意下列重新啟動規定:

  • 如果執行個體採用 PostgreSQL 維護版本 20250302.00_RC30 或更早版本,且您為 Cloud SQL Enterprise Plus 版啟用查詢洞察,執行個體就會重新啟動。執行個體可能需要幾分鐘才會再次可用。因此,所有其他作業都會暫時中止,包括:

    • 健康狀態檢查
    • 記錄
    • 監控
    • 其他執行個體作業
  • 如果執行個體執行的是 PostgreSQL 維護版本 20250302.00_RC31 以上版本,且您啟用了查詢洞察,則不需重新啟動,執行個體作業仍可使用。

  • 如果執行個體已啟用代管連線集區,就不支援用戶端 IP 追蹤功能。如果執行個體使用代管連線集區,通訊埠 3307 和 6432 的用戶端 IP 位址會顯示為 local。

控制台

為執行個體啟用查詢洞察

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 在「設定」圖塊中,按一下「編輯設定」。
  4. 在「自訂執行個體」部分,展開「查詢洞察」。
  5. 勾選「啟用查詢洞察」核取方塊。
  6. 選用:選取執行個體的其他功能。 部分功能僅適用於 Cloud SQL Enterprise Plus 版本。
  7. 功能 說明 Cloud SQL Enterprise 版本 Cloud SQL Enterprise Plus 版
    啟用 Enterprise Plus 功能 勾選這個核取方塊,即可在 Cloud SQL 啟用 Cloud SQL Enterprise Plus 版本的查詢洞察功能。 Cloud SQL Enterprise Plus 版本的查詢洞察功能可讓您終止執行中查詢的工作階段和長時間執行的交易,並將指標資料保留期限延長至 30 天。您必須勾選這個核取方塊,才能啟用 AI 輔助疑難排解功能 (預先發布版)。 無法使用 可用

    預設:停用
    執行中查詢分析 查看執行中查詢的詳細資料。如果是在 Cloud SQL Enterprise Plus 版本啟用,則可終止工作階段和長時間執行的交易。勾選這個核取方塊,即可為 PostgreSQL 適用的 Cloud SQL 執行個體啟用使用中查詢。詳情請參閱「監控執行中的查詢」。 可用

    預設:停用
    可用

    預設:停用
    索引建議工具建議 提供索引建議,加快查詢處理速度。詳情請參閱「使用索引建議工具」。如果執行個體執行的 PostgreSQL 維護版本為 `20250302.00_RC30` 或更早版本,且您啟用了索引建議工具,執行個體就會重新啟動。如果停用索引建議工具,則無須重新啟動執行個體。 無法使用 可用

    預設:停用
    AI 輔助疑難排解 勾選這個核取方塊,即可啟用效能異常偵測、根本原因和情況分析功能,並取得修正查詢和資料庫問題的建議。這項功能目前為預先發布版,只能透過 Google Cloud 控制台啟用及存取。詳情請參閱「使用 AI 輔助功能觀察及排解問題」。 無法使用 可用

    預設:停用
    儲存用戶端 IP 位址 勾選這個核取方塊,即可啟用用戶端 IP 位址儲存功能。 Cloud SQL 可儲存查詢來源的 IP 位址,並讓您將資料分組,據此計算指標。查詢來自多個主機。查看用戶端 IP 位址查詢的圖表,有助於找出問題來源。 可用

    預設:停用
    可用

    預設:停用
    儲存應用程式標記 勾選這個核取方塊,即可啟用應用程式標記儲存空間。儲存應用程式標記有助於判斷發出要求的 API 和模型檢視控制器 (MVC) 路徑,並將資料分組,據此計算指標。如要使用這個選項,您必須使用 sqlcommenter 開放原始碼物件關聯對應 (ORM) 自動檢測程式庫,為查詢加上一組特定標記。這項資訊可協助查詢洞察功能找出問題來源,以及問題來自哪個 MVC。應用程式路徑可協助您監控應用程式。 可用

    預設:停用
    可用

    預設:停用
    自訂查詢長度 勾選這個核取方塊,即可自訂查詢字串的長度限制。查詢長度越長,越適合用於分析查詢,但所需記憶體也越多。任何超過指定限制的查詢字串,在顯示時都會遭到截斷。

    如果您執行的是 PostgreSQL 維護版本 20250302.00_RC31 以上版本,則變更查詢長度限制時,不必重新啟動執行個體。 您仍可為超過長度限制的查詢新增標記。
    您可以設定限制,範圍為 256 到 4500 個位元組。

    預設值:1024。
    您可以指定限制,範圍為 1024 至 100000 (以位元組為單位)。



    預設值:10000 個位元組。

    設定取樣率上限 勾選這個核取方塊,即可設定取樣率上限。取樣率是指執行個體上所有資料庫每分鐘擷取的已執行查詢計畫樣本數。提高取樣率或許可以產生更多資料點,但也有可能增加效能負擔。如要停用取樣功能,請將值設為 0。 請將這個值變更為介於 0 至 20 之間的數字。

    預設值:5。
    您可以將上限提高至 200,以提供更多資料點。

    預設值:200
  8. 按一下「儲存」。

為多個執行個體啟用查詢洞察

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 按一下任一列的「更多動作」 選單。
  3. 選取「啟用查詢洞察」。
  4. 在對話方塊中,勾選「Enable Query insights for multiple instances」(為多個執行個體啟用查詢洞察) 核取方塊。
  5. 按一下「啟用」。
  6. 在後續對話方塊中,選取要啟用查詢洞察的執行個體。
  7. 按一下「啟用查詢洞察」。

gcloud

如要使用 gcloud 啟用 Cloud SQL 執行個體的查詢洞察功能,請執行 gcloud sql instances patch 並加上 --insights-config-query-insights-enabled 旗標,如下所示。請將 INSTANCE_ID 替換為執行個體 ID。

    gcloud sql instances patch INSTANCE_ID \
    --insights-config-query-insights-enabled
  

此外,請使用下列一或多個選用旗標:

  • --insights-config-record-client-address

    儲存查詢來源的用戶端 IP 位址,並協助您將資料分組,據此計算指標。查詢來自多個主機。查看用戶端 IP 位址查詢圖表,有助於找出問題來源。

  • --insights-config-record-application-tags

    儲存應用程式標記,協助您判斷哪些 API 和模型檢視控制器 (MVC) 路徑正在發出要求,並將資料分組,據此計算指標。這個選項會要求您使用一組特定標記來註解查詢。方法是使用 sqlcommenter 開放原始碼物件關聯對應 (ORM) 自動檢測程式庫。這項資訊有助於查詢洞察找出問題來源,以及問題來自哪個 MVC。應用程式路徑可協助您監控應用程式。

  • --insights-config-query-string-length

    設定預設查詢長度限制。查詢長度越長,越適合用於分析查詢,但所需記憶體也會越多。 如果您執行的是 PostgreSQL 維護版本 20250302.00_RC31 以上版本,則變更查詢長度限制時,不需重新啟動執行個體。您仍可為超過長度限制的查詢新增標記。如果是 Cloud SQL Enterprise 版,您可以指定 256 到 4500 之間的值 (以位元組為單位)。預設查詢長度為 1024 個位元組。如果是 Cloud SQL Enterprise Plus 版本,您可以指定 1024 到 100000 之間的限制 (以位元組為單位)。預設值為 10000 個位元組。

  • --insights-config-query-plans-per-minute

    根據預設,執行個體的所有資料庫每分鐘最多可擷取 5 個已執行的查詢計畫樣本。提高取樣率或許可以產生更多資料點,但也有可能增加效能負擔。如要停用取樣功能,請將這個值設為 0。 如果是 Cloud SQL Enterprise 版,您可以將值變更為 0 到 20。如果是 Cloud SQL Enterprise Plus 版本,則可將上限提高至 200,以提供更多資料點。根據預設,執行個體的所有資料庫每分鐘最多可擷取 200 個查詢計畫樣本。

更改下列內容:

  • INSIGHTS_CONFIG_QUERY_STRING_LENGTH:要儲存的查詢字串長度,以位元組為單位。
  • API_TIER_STRING:要用於執行個體的自訂執行個體設定。
  • REGION:執行個體的區域。
gcloud sql instances patch INSTANCE_ID \
--insights-config-query-insights-enabled \
--insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \
--insights-config-query-plans-per-minute=QUERY_PLANS_PER_MINUTE \
--insights-config-record-application-tags \
--insights-config-record-client-address \
--tier=API_TIER_STRING \
--region=REGION
  

REST v1

如要使用 REST API 啟用 Cloud SQL 執行個體的查詢洞察功能,請使用 insightsConfig 設定呼叫 instances.patch 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:執行個體 ID

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "settings" : {
     "insightsConfig" : {
       "queryInsightsEnabled" : true,
       "recordClientAddress" : true,
       "recordApplicationTags" : true,
       "queryStringLength" : 1024,
       "queryPlansPerMinute" : 20,
   }
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-03-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

如要使用 Terraform 為 Cloud SQL 執行個體啟用查詢洞察,請將 query_insights_enabled 旗標設為 true。

此外,您可以使用下列一或多個選用旗標:

  • query_string_length:如果是 Cloud SQL Enterprise 版,您可以指定 256 到 4500 之間的值 (以位元組為單位)。預設查詢長度為 1024 個位元組。 如果是 Cloud SQL Enterprise Plus 版本,您可以指定 1024 至 100000 位元組的限制。預設值為 10000 個位元組。
  • record_application_tags:如要記錄查詢中的應用程式標記,請將值設為 true。
  • record_client_address:如要記錄用戶端 IP 位址,請將值設為 true。預設值為 false。
  • query_plans_per_minute:如果是 Cloud SQL Enterprise 版,您可以將值設為 0 至 20。預設為 5。 如果是 Cloud SQL Enterprise Plus 版本,您可以將上限提高至 200,以提供更多資料點。預設取樣率上限為每分鐘 200 個查詢計畫樣本,適用於執行個體的所有資料庫。

範例如下:

  resource "google_sql_database_instance" "INSTANCE_NAME" {
  name                = "INSTANCE_NAME"
  database_version    = "POSTGRESQL_VERSION"
  region              = "REGION"
  root_password       = "PASSWORD"
  deletion_protection = false # set to true to prevent destruction of the resource
  settings {
    tier = "DB_TIER"
    insights_config {
      query_insights_enabled  = true
      query_string_length     = 2048 # Optional
      record_application_tags = true # Optional
      record_client_address   = true # Optional
      query_plans_per_minute  = 10 # Optional
    }
  }
  }
  

如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。

準備 Cloud Shell

  1. 啟動 Cloud Shell。
  2. 設定要套用 Terraform 設定的預設 Google Cloud 專案。

    這項指令在每個專案中只需執行一次,且可在任何目錄中執行。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。

準備目錄

每個 Terraform 設定檔都必須有自己的目錄 (也稱為「根模組」)。

  1. 在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有 .tf 副檔名,例如 main.tf。在本教學課程中,這個檔案稱為 main.tf。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您正在進行教學課程,可以複製每個章節或步驟中的程式碼範例。

    將程式碼範例複製到新建立的 main.tf。

    您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。

  3. 請查看並修改範例參數,以便套用至您的環境。
  4. 儲存變更。
  5. 初始化 Terraform。每個目錄只需執行一次這項操作。
    terraform init

    如要使用最新版 Google 供應商,請視需要加入 -upgrade 選項:

    terraform init -upgrade

套用變更

  1. 查看設定,確認 Terraform 要建立或更新的資源符合預期:
    terraform plan

    視需要修正設定。

  2. 執行下列指令,並在提示中輸入 yes,套用 Terraform 設定:
    terraform apply

    等待 Terraform 顯示「Apply complete!」訊息。

  3. 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。

查詢完成後,指標應會在幾分鐘內顯示在查詢洞察中。查看 Cloud Monitoring 資料保留政策。

查詢洞察追蹤記錄會儲存在 Cloud Trace 中。查看 Cloud Trace 資料保留政策。

查看「查詢洞察」資訊主頁

「查詢洞察」資訊主頁會根據您選取的因素顯示查詢負載。查詢負載是指在所選日期範圍內,執行個體中所有查詢的總工作量。資訊主頁提供一系列篩選器,可協助您查看查詢負載。

如要開啟「查詢洞察」資訊主頁,請按照下列步驟操作:

  1. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  2. 在 Cloud SQL 導覽選單中,按一下「Query insights」(查詢洞察),或在「Instance overview」(執行個體總覽) 頁面中,按一下「Go to Query insights for more in-depth info on queries and performance」(前往「查詢洞察」頁面,深入瞭解查詢和效能)。
  3. 「查詢洞察」資訊主頁隨即開啟。視您使用的是 Cloud SQL Enterprise 版或 Cloud SQL Enterprise Plus 版的查詢洞察,查詢洞察資訊主頁會顯示下列執行個體資訊:

Cloud SQL Enterprise Plus 版

顯示 Enterprise Plus 版本的查詢洞察資訊主頁,其中包含可依資料庫、使用者和用戶端位址篩選的選單。您也可以依時間範圍篩選,例如 1 小時、6 小時、1 天、30 天,或選取自訂時間範圍。這張圖表顯示一小時內所有查詢的資料庫負載 (以執行時間為準,單位為毫秒)。
  • 「All queries」(所有查詢):顯示所選日期範圍內所有查詢的資料庫負載。每項查詢都會以不同顏色標示。如要查看特定查詢的時間點,請將指標懸停在該查詢的圖表上。
  • 資料庫:篩選特定資料庫或所有資料庫的查詢負載。
  • 使用者:篩選特定使用者帳戶的查詢負載。
  • 用戶端位址:篩選來自特定 IP 位址的查詢負載。
  • 時間範圍:依時間範圍篩選查詢負載,例如 1 小時、6 小時、1 天、7 天、30 天或自訂範圍。
  • 等待事件類型:依 CPU 和鎖定等待事件類型篩選查詢負載。
  • 「查詢」、「等待事件類型」、「資料庫」、「使用者」、「標記」和「用戶端位址」:依據圖表中對資料庫負載影響最大的維度排序。請參閱「篩選資料庫負載」。

Cloud SQL Enterprise 版本

顯示「查詢洞察」資訊主頁,其中包含資料庫、使用者和位址的下拉式選單。下拉式選單右側有一個篩選器,可用來設定日期範圍。此外,圖表也會顯示熱門查詢的資料庫負載。圖表底部有 CPU 容量、CPU 和 CPU 等待時間、IO 等待時間和鎖定等待時間的選取方塊,以及查詢和標記的分頁。
  • 資料庫:篩選特定資料庫或所有資料庫的查詢負載。
  • 使用者:篩選特定使用者帳戶的查詢負載。
  • 用戶端位址:篩選來自特定 IP 位址的查詢負載。
  • 時間範圍:依時間範圍篩選查詢負載,例如 1 小時、6 小時、1 天、7 天、30 天或自訂範圍。
  • 資料庫負載圖表:根據篩選後的資料顯示查詢負載圖表。
  • CPU 容量、CPU 和 CPU 等待、IO 等待和鎖定等待:根據所選選項篩選負載。如要進一步瞭解各項篩選器,請參閱「查看熱門查詢的資料庫負載」。
  • 「查詢」和「標記」:依所選查詢或所選 SQL 查詢標記篩選查詢負載。請參閱「篩選資料庫負載」。

查看所有查詢的資料庫負載

資料庫查詢負載是指所選資料庫中,已執行查詢作業在一段時間內的工作量 (以 CPU 使用秒數為單位)。每項執行中的查詢都會使用或等待 CPU 資源、IO 資源或鎖定資源。資料庫查詢負載是指在指定時間範圍內,所有查詢完成所需時間與實際經過時間的比率。

頂層查詢洞察資訊主頁會顯示「Database load — all top queries」(資料庫負載 - 所有熱門查詢) 圖表。您可以使用資訊主頁上的下拉式選單,篩選特定資料庫、使用者或用戶端位址的圖表。

Cloud SQL Enterprise Plus 版

顯示資料庫負載圖表,其中包含 CPU 容量、CPU 和 CPU 等待、IO 等待和鎖定等待的負載。

Cloud SQL Enterprise 版本

顯示資料庫負載圖表,其中包含 CPU 容量、CPU 和 CPU 等待、IO 等待和鎖定等待的負載。

圖表中的彩色線條代表查詢負載,分為以下類別:

  • CPU 容量:執行個體可用的 CPU 數量。
  • CPU 和 CPU 等待:查詢處於有效狀態的時間與實際經過時間的比率。IO 和鎖定等待不會封鎖處於有效狀態的查詢。這項指標可能代表查詢正在使用 CPU,或是在其他程序使用 CPU 時,等待 Linux 排程器排定執行查詢的伺服器程序。
  • IO 等待:等待 IO 的查詢所花費的時間與實際經過時間的比率。IO 等待時間包括讀取 IO 等待時間和寫入 IO 等待時間。 如要查看 IO 等待時間的詳細資訊,請前往 Cloud Monitoring。詳情請參閱「Cloud SQL 指標」。詳情請參閱 PostgreSQL 事件資料表。
  • 鎖定等待:等待鎖定的查詢所花時間與實際經過時間的比率。包括鎖定等待、LwLock 等待和緩衝區固定鎖定等待。如要查看鎖定等待資訊的細目,請使用 Cloud Monitoring。詳情請參閱「Cloud SQL 指標」。

圖表中的彩色線條代表各資料庫的負載 (根據執行時間)。查看圖表並使用篩選選項,探索下列問題:

  • 查詢負載是否過高?圖表是否會隨著時間推移而出現高峰或上升?如果負載不高,表示問題不在查詢。
  • 負載過高的情況持續多久了?是只有現在偏高,還是已經偏高一段時間?使用範圍選取器選取不同的時間範圍,找出問題持續的時間。放大即可查看查詢負載高峰的時間範圍。縮小時間軸,最多可查看一週的記錄。
  • 高負載的原因為何?您可以選取選項,查看 CPU 容量、CPU 和 CPU 等待、鎖定等待或 IO 等待。每個選項的圖表顏色都不同,方便您找出負載最高的選項。圖表中的深藍色線條代表系統的 CPU 容量上限。您可以比較查詢負載與 CPU 系統容量上限。這項比較有助於判斷執行個體的 CPU 資源是否即將用盡。
  • 哪個資料庫正在承受負載?從「資料庫」下拉式選單中選取不同資料庫,找出負載最高的資料庫。
  • 特定使用者或 IP 位址是否會造成較高的負載?從下拉式選單中選取不同的使用者和位址,找出造成較高負載的使用者和位址。

篩選資料庫負載

您可以依查詢或標記篩選資料庫負載。 如果使用 Cloud SQL Enterprise Plus 版本的查詢洞察,可以自訂資料庫負載圖表,使用下列任一維度細分顯示的資料:

  • 所有查詢

  • 等待事件類型

  • 等待事件

  • 資料庫

  • 使用者

  • 標記

  • 用戶端位址

如要自訂資料庫負載圖表,請從「Database Load by execution time」(資料庫負載 (根據執行時間)) 下拉式選單中選取維度。

查看資料庫負載的主要來源

如要查看資料庫負載的主要來源,請使用「Top dimensions by database load」(各資料庫負載的最大維度) 表格。「Top dimensions by database load」(依資料庫負載列出的主要維度) 表格會顯示您在「Database Load by execution time」(依執行時間列出的資料庫負載) 圖表下拉式選單中,所選時間範圍和維度的主要影響因素。您可以修改時間範圍或維度,查看不同維度或時間範圍的傑出貢獻者。

在「Top dimensions by data load」(依資料負載列出的主要維度) 表格中,您可以選取下列分頁標籤。

Tab 鍵 說明
查詢 表格會依總執行時間顯示最熱門的正規化查詢。 每項查詢的資料欄會列出下列資料:
  • 平均執行時間 (毫秒):查詢的平均執行時間。
    • 「Avg execution time (ms)」(平均執行時間 (毫秒)) 欄中的項目清單可能不完整。舉例來說,如果特定使用者執行的查詢導致資料庫負載過高,且該行為不代表使用者的平均行為,則可能不會納入該使用者查詢的項目。
  • 總執行時間 (毫秒):特定查詢的總執行時間。
  • 平均傳回的資料列數:查詢擷取的平均資料列數。
  • 呼叫次數:應用程式呼叫查詢的次數。
  • %load by SELECTED_DIMENSION:百分比折線圖,說明所選維度在特定查詢中的分布情形。
等待事件類型 這個表格會列出所選時間範圍內發生的主要等待事件類型。這個資料表僅適用於 Cloud SQL Enterprise Plus 版本的查詢洞察。
  • Avg time spent in wait (ms):查詢在特定等待事件類型中花費的平均時間。
  • 總等待時間 (毫秒):查詢在特定等待事件類型中花費的總執行時間。
  • 等待事件類型數量:在所選時間範圍內,特定等待事件類型發生的次數。
  • %load by SELECTED_DIMENSION:百分比折線圖,呈現資料庫負載圖表所選維度在特定等待事件類型的分布情形。
等待事件 這個表格會列出所選時間範圍內發生的主要等待事件。這個資料表僅適用於 Cloud SQL Enterprise Plus 版本的查詢洞察。
  • Avg time spent in wait (ms):查詢在特定等待事件中花費的平均時間。
  • 總等待時間 (毫秒):查詢在特定等待事件中花費的總執行時間。
  • 等待事件計數:在所選時間範圍內,特定等待事件類型發生的次數。
  • %load by SELECTED_DIMENSION:百分比折線圖,呈現資料庫負載圖表所選維度在特定等待事件中的分布情形。
資料庫 這份表格列出在所選時間範圍內,所有已執行查詢中,造成負載的主要資料庫。
  • Avg time spent in database (ms):查詢在特定資料庫中花費的平均時間。
  • Total time spent in database (ms):查詢在特定資料庫中執行的總時間。
  • %load by SELECTED_DIMENSION:百分比折線圖,呈現資料庫負載圖表所選維度在特定資料庫中的分布情形。
使用者 這份表格列出所選時間範圍內,所有已執行查詢的熱門使用者。
  • Avg time spent in user (ms):查詢在特定使用者上花費的平均時間。
  • Total time spent in user (ms):查詢在特定使用者中耗費的總執行時間。
  • 各SELECTED_DIMENSION的負載百分比:百分比折線圖,呈現資料庫負載圖表所選維度在特定使用者之間的分布情形。
標記 如要瞭解標記,請參閱「依查詢標記篩選」。
用戶端位址 這份表格列出所選時間範圍內,所有已執行查詢的熱門使用者。
  • Total time spent in client address (ms):查詢在特定用戶端耗費的總執行時間。
  • SELECTED_DIMENSION 負載百分比:百分比折線圖,呈現資料庫負載圖表所選維度在特定用戶端中的分布情形。

依查詢篩選

「Top dimensions by database load」(各資料庫負載的最大維度) 表格會概略列出造成最多查詢負載的查詢。表格會顯示在「查詢洞察」資訊主頁上,所選時間範圍和選項的所有正規化查詢。並依所選日期範圍內的總執行時間排序查詢。

Cloud SQL Enterprise Plus 版

如要排序表格,請選取資料欄標題。

顯示資料庫負載圖表,其中包含查詢負載,並選取 CPU 容量、CPU 和 CPU 等待、IO 等待和鎖定等待的篩選器。

Cloud SQL Enterprise 版本

如要排序表格,請選取欄標題或「篩選查詢」中的屬性。

顯示資料庫負載圖表,其中包含查詢負載,並選取 CPU 容量、CPU 和 CPU 等待、IO 等待和鎖定等待的篩選器。

表格會顯示下列屬性:

  • 查詢:標準化查詢字串。根據預設,查詢洞察只會顯示查詢字串中的 1024 個字元。標示為 UTILITY COMMAND 的查詢通常包含 BEGIN、COMMIT 和 EXPLAIN 指令或包裝函式指令。
  • 資料庫:執行查詢的資料庫。
  • 建議:建議採取的做法,例如「建立索引」,以提高查詢效能。
  • 負載 (根據總時間)/負載 (根據 CPU 時間)/負載 (根據 IO 等待時間)/負載 (根據鎖定等待時間): 這些選項可篩選特定查詢,找出最大負載。
  • % load by Queries:個別查詢的負載百分比。
  • 分析延遲時間:如果您已為這個執行個體啟用 AI 輔助疑難排解 (預先發布版),可以點選這個連結,排解查詢速度緩慢的問題。
  • 平均執行時間 (毫秒):查詢的平均執行時間。
  • 呼叫次數:應用程式呼叫查詢的次數。
  • 平均傳回列數:查詢平均傳回的資料列數。

查詢洞察只會儲存及顯示正規化查詢。

根據預設,查詢洞察不會收集 IP 位址或標記資訊。您可以啟用查詢洞察功能來收集這項資訊,並在必要時停用收集功能。

查詢計畫追蹤記錄不會收集或儲存任何常數值,並會移除常數可能顯示的任何 PII 資訊。

如果是 PostgreSQL 9.6 和 10,查詢洞察會顯示正規化查詢,也就是 ? 會取代常值常數值。在以下範例中,名稱常數已移除,並由 ? 取代。

  UPDATE
    "demo_customer"
  SET
    "customer_id" = ?::uuid,
    "name" = ?,
    "address" = ?,
    "rating" = ?,
    "balance" = ?,
    "current_city" = ?,
    "current_location" = ?
  WHERE
    "demo_customer"."id" = ?
  

如果是 PostgreSQL 11 以上版本,$1、$2 和類似變數會取代常值常數值。

  UPDATE
    "demo_customer"
  SET
    "customer_id" = $1::uuid,
    "name" = $2,
    "address" = $3,
    "rating" = $4,
    "balance" = $5,
    "current_city" = $6,
    "current_location" = $7
  WHERE
    "demo_customer"."id" = $8
  

依查詢標記篩選

如要排解應用程式問題,請先在 SQL 查詢中新增標記。查詢負載標記會依時間細分所選標記的查詢負載。

查詢洞察提供以應用程式為中心的監控功能,可診斷使用 ORM 建構的應用程式效能問題。如果您負責整個應用程式堆疊,查詢洞察可從應用程式檢視畫面提供查詢監控功能。查詢標記可協助您找出較高層級建構中的問題,例如商業邏輯或微服務。

您可以依據商業邏輯標記查詢,例如付款、庫存、業務分析或運送標記。接著,您就能找出各種商業邏輯建立的查詢負載。舉例來說,您可能會觀察到非預期的事件,例如下午 1 點商業分析代碼出現高峰,或付款服務的趨勢比前一週出現非預期的成長。

如要計算標記的資料庫負載,查詢洞察會使用每個查詢所花費的時間,並使用您選取的標記。這項工具會使用實際時間,計算分鐘邊界上的完成時間。

在查詢洞察資訊主頁中,選取「Tags」(標記) 即可查看標記表格。表格會依總時間的總負載排序代碼。

顯示「查詢洞察」資訊主頁,其中包含標記負載和標記清單。

如要排序表格,請從「篩選標記」中選取屬性,或按一下欄標題。表格會顯示下列屬性:

  • Action、Controller、Framework、Route、Application、DB driver:您新增至查詢的每個屬性都會顯示為一欄。如要依標記篩選,則必須至少新增其中一項屬性。
  • 負載 (根據總時間)/負載 (根據 CPU 時間)/負載 (根據 IO 等待時間)/負載 (根據鎖定等待時間):篩選特定查詢的選項,找出各選項的最大負載。
  • 平均執行時間 (毫秒):查詢的平均執行時間。
  • 平均傳回列數:查詢平均傳回的資料列數。
  • 呼叫次數:應用程式呼叫查詢的次數。
  • 資料庫:執行查詢的資料庫。

查看特定查詢或標記的查詢詳細資料

如要判斷特定查詢或代碼是否為問題的根本原因,請分別在「查詢」分頁或「代碼」分頁中執行下列操作:

  1. 如要依遞減順序排序清單,請按一下「負載 (根據總時間)」標題。
  2. 按一下清單頂端的查詢或標記。這個節點的負載最高,且耗費的時間比其他節點多。

「Query details」(查詢詳細資料) 頁面隨即開啟,並顯示所選查詢或標記的詳細資料。

檢查特定查詢負載

所選查詢的「Query details」(查詢詳細資料) 頁面如下所示:

顯示特定查詢的資料庫負載和延遲時間圖表。

「Database load — specific query」(資料庫負載 - 特定查詢) 圖表會顯示正規化查詢在所選查詢中執行的工作量 (以 CPU 秒數為單位)。系統會計算在分鐘邊界完成的正規化查詢所花費的時間,並與實際時間進行比較,藉此計算負載。表格頂端會顯示正規化查詢的前 1024 個字元,並移除常值,以便匯總及保護 PII。

顯示資料庫負載圖表,其中包含特定查詢的負載,並選取 CPU 容量、CPU 和 CPU 等待、IO 等待和鎖定等待的篩選器。

與查詢總數圖表一樣,您可以依「資料庫」、「使用者」和「用戶端位址」篩選特定查詢的負載。查詢負載分為「CPU capacity」(CPU 容量)、「CPU and CPU wait」(CPU 和 CPU 等待)、「IO wait」(IO 等待)和「Lock wait」(鎖定等待)。

檢查特定標記查詢負載

所選標記的資訊主頁如下所示。舉例來說,如果微服務付款的所有查詢都標記為 payment,您可以查看 payment 標記,瞭解查詢負載的趨勢。

在頁面上顯示特定標記的資料庫負載和延遲時間圖表。

「Database load — specific tags」(資料庫負載 - 特定標記) 圖表會顯示與所選標記相符的查詢,在所選資料庫中執行的工作量 (以 CPU 秒數為單位) 趨勢。與總查詢圖表一樣,您可以依「Database」(資料庫)、「User」(使用者)和「Client address」(用戶端位址) 篩選特定標記的負載。

檢查取樣查詢計畫中的作業

查詢計畫會擷取查詢樣本,並將其拆解為個別作業。並說明及分析查詢中的每項作業。

「Query plan samples」(查詢計畫樣本) 圖表會顯示在特定時間執行的所有查詢計畫,以及各項計畫的執行時間。您可以變更每分鐘擷取查詢計畫樣本的頻率。請參閱「啟用查詢洞察」。

範例查詢計畫的圖表,圖表底部 (x 軸) 顯示執行時間,右側 (y 軸) 顯示執行秒數。

根據預設,右側面板會顯示耗時最長的範例查詢計畫詳細資料,如「Query plan samples」(查詢計畫樣本) 圖表所示。如要查看其他範例查詢計畫的詳細資料,請按一下圖表上的相關圓圈。展開的詳細資料會顯示查詢計畫中所有作業的模型。

每項作業都會顯示延遲時間、傳回的資料列數和作業費用。選取作業後,即可查看更多詳細資料,例如共用命中區塊、結構定義類型、迴圈和計畫資料列。

查詢計畫會顯示查詢執行的每項作業的延遲時間和費用。

請試著透過下列問題縮小問題範圍:

  1. 資源消耗量為何?
  2. 與其他查詢有何關聯?
  3. 用量是否會隨時間變化?

檢查範例查詢產生的追蹤記錄

除了查看範例查詢計畫,您也可以使用查詢洞察,查看範例查詢的端對端應用程式追蹤記錄。這項追蹤記錄會顯示特定要求的資料庫活動,協助您找出有問題的查詢來源。此外,應用程式在要求期間傳送至 Cloud Logging 的記錄項目會連結至追蹤記錄,有助於您進行調查。

如要查看情境追蹤記錄,請按照下列步驟操作:

  1. 在「Sample Query」(範例查詢) 畫面中,按一下「End-to-end Trace」(端對端追蹤記錄) 分頁標籤。這個分頁會顯示甘特圖,詳細列出查詢產生的追蹤記錄 span (個別作業的記錄)。
  2. 如要查看各個 Span 的詳細資料 (例如屬性和中繼資料),請選取該 Span。

您也可以在「Trace Explorer」頁面查看追蹤記錄。方法是按一下「View in Cloud Trace」(在 Cloud Trace 中查看)。如要進一步瞭解如何使用「Trace Explorer」頁面探索追蹤記錄資料,請參閱「尋找及探索追蹤記錄」。

檢查延遲時間

「延遲時間」是指正規化查詢完成所需的時間 (以實際經過時間計算)。您可以使用「Latency」(延遲) 圖表,檢查查詢或標記的延遲時間。延遲時間資訊主頁會顯示第 50、第 95 和第 99 個百分位數的延遲時間,以便找出離群值行為。

下圖顯示特定查詢在第 50 百分位數的資料庫負載圖表,並選取 CPU 容量、CPU 和 CPU 等待時間、IO 等待時間和鎖定等待時間的篩選條件。

顯示特定查詢的查詢延遲時間圖表,並選取 CPU 容量、CPU 和 CPU 等待、IO 等待和鎖定等待的篩選器。

平行查詢的延遲時間是以實際時間測量,即使查詢負載可能較高,因為多個核心用於執行部分查詢。

請試著透過下列問題縮小問題範圍:

  • 高負載的原因為何?選取選項即可查看 CPU 容量、CPU 和 CPU 等待、I/O 等待或鎖定等待。
  • 負載過高的情況持續多久了?只有現在偏高嗎?還是已經持續高溫一段時間?變更日期範圍,找出負載開始效能不佳的日期和時間。
  • 延遲時間是否突然增加?變更時間範圍,研究正規化查詢的歷來延遲時間。

為 SQL 查詢新增標記

標記 SQL 查詢可簡化應用程式疑難排解程序。您可以使用 sqlcommenter,自動或手動為 SQL 查詢新增標記。

搭配使用 sqlcommenter 與 ORM

如果您使用 ORM,而非直接編寫 SQL 查詢,可能就無法找出導致效能問題的應用程式程式碼。您可能也難以分析應用程式程式碼對查詢效能的影響。為解決這個問題,查詢洞察提供名為 sqlcommenter 的開放原始碼程式庫。這個程式庫適用於使用 ORM 工具的開發人員和管理員,可偵測哪些應用程式程式碼導致效能問題。

如果您同時使用 ORM 和 sqlcommenter,系統會自動建立標記。您不需要在應用程式中新增或變更程式碼。

您可以在應用程式伺服器上安裝 sqlcommenter。檢測程式庫可讓與 MVC 架構相關的應用程式資訊,以 SQL 註解的形式與查詢一起傳播至資料庫。資料庫會擷取這些標記,並開始依標記記錄及匯總統計資料,這些資料與依正規化查詢匯總的統計資料互不相關。查詢洞察會顯示標記,讓您瞭解哪個應用程式造成查詢負載,並找出導致效能問題的應用程式程式碼。

查看 SQL 資料庫記錄中的結果時,會顯示如下:

    SELECT * from USERS /action='run+this',
    controller='foo%3',
    traceparent='00-01',
    tracestate='rojo%2'/
  

支援的標記包括控制器名稱、路徑、架構和動作。

sqlcommenter 中的 ORM 工具組支援下列程式設計語言:

Python
  • Django
  • psycopg2
  • Sqlalchemy
  • Flask
Java
  • 休眠
  • Spring
小茹
  • Rails
Node.js
  • Knex.js
  • Sequelize.js
  • Express.js
PHP
  • Laravel
Go
  • http-tags
  • gorilla/mux
  • database/sql

如要進一步瞭解 sqlcommenter,以及如何在 ORM 架構中使用,請參閱 sqlcommenter 說明文件。

使用 sqlcommenter 新增標記

如果您未使用 ORM,則必須手動將 sqlcommenter 標記或註解,以正確的 SQL 註解格式新增至 SQL 查詢。您也必須在每個 SQL 陳述式中加入註解,其中包含序列化的鍵/值組合。請至少使用下列其中一個鍵:

  • action=''
  • controller=''
  • framework=''
  • route=''
  • application=''
  • db driver=''

查詢洞察會捨棄所有其他索引鍵。

遭封鎖的執行中查詢

如果特定執行中查詢遭到封鎖,或執行時間遠超過預期,可能會阻礙其他依附查詢。

Cloud SQL 可讓您終止特定長時間執行或遭封鎖的執行中查詢。

詳情請參閱「封鎖的執行中查詢」。

停用查詢洞察

控制台

如要使用 Google Cloud 控制台停用 Cloud SQL 執行個體的查詢洞察功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 在「設定」圖塊中,按一下「編輯設定」。
  4. 在「設定選項」部分,展開「查詢洞察」。
  5. 取消勾選「啟用查詢洞察」核取方塊。
  6. 按一下「儲存」。

gcloud

如要使用 gcloud 停用 Cloud SQL 執行個體的查詢洞察功能,請執行 gcloud sql instances patch 並加上 --no-insights-config-query-insights-enabled 旗標,如下所示。請先將 INSTANCE_ID 替換為執行個體 ID。

gcloud sql instances patch INSTANCE_ID \
  --no-insights-config-query-insights-enabled

REST

如要使用 REST API 停用 Cloud SQL 執行個體的查詢洞察功能,請呼叫 instances.patch 方法,並將 queryInsightsEnabled 設為 false,如下所示。

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID。
  • instance-id:執行個體 ID。

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 要求主體:

{
  "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2021-01-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Terraform

如要使用 Terraform 停用 Cloud SQL 執行個體的查詢洞察功能,請將 query_insights_enabled 旗標設為 false。

範例如下:

  resource "google_sql_database_instance" "INSTANCE_NAME" {
  name                = "INSTANCE_NAME"
  database_version    = "POSTGRESQL_VERSION"
  region              = "REGION"
  root_password       = "PASSWORD"
  deletion_protection = false # set to true to prevent destruction of the resource
  settings {
    tier = "DB_TIER"
    insights_config {
      query_insights_enabled  = false
    }
  }
  }
  

如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。

準備 Cloud Shell

  1. 啟動 Cloud Shell。
  2. 設定要套用 Terraform 設定的預設 Google Cloud 專案。

    這項指令在每個專案中只需執行一次,且可在任何目錄中執行。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。

準備目錄

每個 Terraform 設定檔都必須有自己的目錄 (也稱為「根模組」)。

  1. 在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有 .tf 副檔名,例如 main.tf。在本教學課程中,這個檔案稱為 main.tf。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您正在進行教學課程,可以複製每個章節或步驟中的程式碼範例。

    將程式碼範例複製到新建立的 main.tf。

    您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。

  3. 請查看並修改範例參數,以便套用至您的環境。
  4. 儲存變更。
  5. 初始化 Terraform。每個目錄只需執行一次這項操作。
    terraform init

    如要使用最新版 Google 供應商,請視需要加入 -upgrade 選項:

    terraform init -upgrade

套用變更

  1. 查看設定,確認 Terraform 要建立或更新的資源符合預期:
    terraform plan

    視需要修正設定。

  2. 執行下列指令,並在提示中輸入 yes,套用 Terraform 設定:
    terraform apply

    等待 Terraform 顯示「Apply complete!」訊息。

  3. 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。

停用 Cloud SQL Enterprise Plus 版本的查詢洞察功能

如要停用 Cloud SQL Enterprise Plus 版本的查詢洞察功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 按一下 [編輯]。
  4. 在「自訂執行個體」部分,展開「查詢洞察」。
  5. 取消勾選「啟用 Enterprise Plus 功能」核取方塊。
  6. 按一下「儲存」。

後續步驟