使用 AlloyDB 的進階查詢洞察功能提升查詢效能

如要近乎即時地偵測及分析主要和讀取集區執行個體的查詢效能問題,可以使用 AlloyDB for PostgreSQL 的進階查詢洞察功能。如要瞭解這些功能,請參閱「AlloyDB 的進階查詢洞察功能總覽」。

如要瞭解如何使用標準查詢洞察,請參閱「使用查詢洞察提高查詢效能」。

您可以使用 Gemini Cloud Assist 監控 AlloyDB 資源及排解相關問題。詳情請參閱「使用 Gemini 輔助功能監控及排解問題」。

事前準備

如要存取查詢洞察資訊主頁,請在 Google Cloud 專案中啟用 AlloyDB for PostgreSQL 存取權。

必要的角色

如要使用 AlloyDB 的進階查詢洞察功能,您必須具備下列權限:

  • 如要使用 AlloyDB 的進階查詢洞察功能,您必須具備 AlloyDB 查詢洞察資訊主頁的存取權。
  • 如要編輯 AlloyDB 進階查詢洞察功能的設定,您必須具備更新 AlloyDB 執行個體的權限。

如要取得這些權限,請要求管理員授予您下列其中一個角色:

  • 基本檢視者 (roles/viewer)
  • 資料庫洞察檢視者 (roles/databaseinsights.viewer)

如要進一步瞭解如何授予角色,請參閱「管理存取權」。

啟用 AlloyDB 適用的進階查詢洞察功能

如要為 AlloyDB 執行個體啟用進階查詢洞察設定,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 按一下「啟用」或「編輯設定」。

  5. 在「編輯查詢洞察設定」分頁中,勾選「啟用 AlloyDB 適用的進階查詢洞察功能」核取方塊。

    根據預設,這會導致下列設定變更:

    • 勾選「等待事件分析」和「執行中查詢分析」核取方塊。
    • 將查詢長度從 4500B 提高至 100000B。
  6. 儲存變更。這項操作會重新啟動 AlloyDB for PostgreSQL 執行個體。

gcloud

gcloud alpha alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled

更改下列內容:

  • INSTANCE:要更新的執行個體 ID。
  • CLUSTER:執行個體叢集的 ID。
  • PROJECT:叢集專案的 ID。
  • REGION:叢集所在的區域,例如 us-central1。

--observability-config-enabled 旗標可收集及分析 AlloyDB 執行個體的資料,監控其效能和健康狀態。如要停用進階查詢洞察,請使用 --no-observability-config-enabled。

Terraform

如要使用 Terraform 為 AlloyDB 執行個體啟用進階查詢洞察功能,請在 observability_config 區塊中將 enabled 欄位設為 true。

範例如下:

  observability_config {
    enabled = true
  ...
  }
  

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

REST v1

這個範例會在 AlloyDB 執行個體啟用進階查詢洞察功能。如需這項呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.instances.patch」。如要瞭解進階查詢洞察設定,請參閱「編輯進階查詢洞察設定」。

使用任何要求資料之前,請先替換下列項目:

  • CLUSTER_ID:您建立的叢集 ID。開頭須為小寫英文字母,且只能使用小寫英文字母、數字和連字號。
  • PROJECT_ID:要放置叢集的專案 ID。
  • LOCATION_ID:叢集區域的 ID。
  • INSTANCE_ID:要建立的主要執行個體名稱。

如要啟用執行個體設定,請使用下列 PATCH 要求:

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID}?updateMask=observabilityConfig.enabled

updateMask=observabilityConfig.enabled 查詢參數會指示 API 更新 observabilityConfig 區塊中的 enabled 欄位。

要求 JSON 主體如下所示:

{
 "observabilityConfig": {
   "enabled" : true
 }
}

啟用進階查詢洞察功能後,您可以編輯進階查詢洞察設定。

編輯進階功能設定

如要編輯 AlloyDB 執行個體的進階查詢洞察設定,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 按一下「Edit settings」(編輯設定),然後修改下列任一設定:

    • 等待事件分析:等待事件分析功能可協助找出並解決資料庫中的效能問題。等待事件是導致查詢相關作業處理延遲的元件。
    • 執行中查詢分析:追蹤執行中的查詢。
    • 儲存查詢註解:查看與您調查的查詢有關的註解 (屬於查詢的一部分),瞭解查詢的相關資訊。不需要額外的記憶體。如果註解中含有機密資訊,請留意使用者的存取權。
    • 啟用索引建議工具:在叢集的查詢洞察頁面顯示索引建立建議。
    • 在「Select run frequency」(選取執行頻率) 欄位中,您可以定義建議的更新頻率。
    • 儲存用戶端 IP 位址:啟用後,即可追蹤用戶端 IP 位址並分析相關資料。
    • 儲存應用程式標記:啟用後,即可瞭解哪些 API 和模型-檢視-控制器路徑正在發出要求,並將資料分組,據此計算指標。
    • 查詢計畫取樣率:查詢計畫會以圖表呈現用來完成查詢取樣的作業。系統每分鐘在各個資料庫中可擷取的查詢樣本數取決於取樣率。取樣率越高,需要的記憶體就越多。
    • 在「Query lengths」(查詢長度) 欄位中,您可以變更查詢長度的預設限制,從 256 個位元組到 100 KB。查詢越長,所需記憶體越多。必須重新啟動執行個體,才能變更查詢長度。
  5. 儲存變更。

gcloud

gcloud alpha alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries \
--observability-config-track-client-address \
--observability-config-assistive-experiences-enabled

更改下列內容:

  • INSTANCE:要更新的執行個體 ID。
  • CLUSTER:執行個體叢集的 ID。
  • PROJECT:叢集專案的 ID。
  • REGION:叢集所在的區域,例如 us-central1。
  • QUERY_LENGTH:查詢長度,介於 1024 到 100000 個位元組之間。預設查詢長度為 10240 個位元組。查詢越長,越適合用於分析查詢,但所需記憶體也越多。變更查詢長度後,您必須重新啟動執行個體。您仍可為超過長度限制的查詢新增標記。
  • QUERY_PLANS:每分鐘要設定的查詢計畫數量。根據預設,執行個體的所有資料庫每分鐘最多可擷取 20 個已執行的查詢計畫樣本。請將這個值變更為介於 1 至 200 之間的數字。如要停用取樣功能,請輸入 0。提高取樣率或許可以產生更多資料點,但也有可能降低效能。

視需要使用下列選用的觀測能力旗標:

  • --observability-config-enabled:可收集及分析 AlloyDB 執行個體的資料,監控效能和健康狀態。如要停用進階查詢洞察,請使用 --no-observability-config-enabled。
  • --observability-config-track-active-queries:啟用追蹤執行中的查詢。如要停用這項功能,請使用 --no-observability-config-track-active-queries。
  • --observability-config-track-client-address:啟用用戶端位址追蹤功能。如要停用用戶端位址追蹤功能,請使用 --no-observability-config-track-client-address。
  • --observability-config-assistive-experiences-enabled:啟用輔助體驗,收集更詳盡的遙測資料,用於監控及疑難排解。如要停用輔助功能,請使用 --no-observability-config-assistive-experiences-enabled。
  • --observability-config-record-application-tags:儲存應用程式標記,協助您判斷發出要求的 API 和模型-檢視-控制器 (MVC) 路徑,並將資料分組,據此計算指標。這個選項會要求您使用一組特定標記來註解查詢。如果不想儲存應用程式標記,請使用 --no-observability-config-record-application-tags。
  • --observability-config-preserve-comments:保留查詢洞察記錄的查詢字串註解。如果不想保留註解,請使用 --no-observability-config-preserve-comments。
  • --observability-config-track-wait-events:啟用查詢執行期間的等待事件追蹤功能。如果不想追蹤等待事件,請使用 --no-observability-config-track-wait-events。
  • --observability-config-query-plans-per-minute=QUERY_PLANS:每分鐘要取樣的查詢計畫數量。根據預設,執行個體的所有資料庫每分鐘最多可擷取 20 個已執行的查詢計畫樣本。請將這個值變更為介於 1 至 200 之間的數字。如要停用取樣功能,請輸入 0。提高取樣率或許可以產生更多資料點,但也有可能降低效能。
  • --observability-config-max-query-string-length=QUERY_LENGTH:要儲存的查詢字串長度 (以位元組為單位)。預設值為 10240 個位元組。可輸入 1024 到 100000 之間的任何值。變更查詢長度後,必須重新啟動執行個體。

Terraform

如要使用 Terraform 設定 AlloyDB 執行個體的進階查詢洞察功能,請使用 google_alloydb_instance 資源。

範例如下:

  observability_config {
    enabled = ENABLED_VALUE
    preserve_comments = PRESERVE_COMMENTS_VALUE
    track_wait_events = TRACK_WAIT_EVENTS_VALUE
    max_query_string_length = MAX_QUERY_STRING_LENGTH_VALUE
    record_application_tags = RECORD_APPLICATION_TAGS_VALUE
    query_plans_per_minute = QUERY_PLANS_PER_MINUTE_VALUE
    track_active_queries = TRACK_ACTIVE_QUERIES_VALUE
    track_client_address = TRACK_CLIENT_ADDRESS_VALUE
    assistive_experiences_enabled = ASSISTIVE_EXPERIENCES_ENABLED_VALUE
  }
  

更改下列內容:

  • ENABLED_VALUE:執行個體的觀測功能狀態。編輯設定時,請設為 true,並視需要指定其他旗標。
  • PRESERVE_COMMENTS_VALUE:保留查詢字串中的註解。預設值為 false。
  • TRACK_WAIT_EVENTS_VALUE:記錄執行個體執行查詢期間的等待事件。預設值為 true。
  • MAX_QUERY_STRING_LENGTH_VALUE:查詢字串長度。預設值為 10240。介於 1024 至 100000 之間的任何整數皆有效。
  • RECORD_APPLICATION_TAGS_VALUE:記錄執行個體的應用程式標記。預設值為 true。
  • QUERY_PLANS_PER_MINUTE_VALUE:洞察功能每分鐘為所有查詢擷取的查詢執行計畫數量。預設值為 20。介於 0 到 200 之間的任何整數都有效。
  • TRACK_ACTIVE_QUERIES_VALUE:追蹤執行中的查詢。預設值為 false。
  • TRACK_CLIENT_ADDRESS_VALUE:記錄執行個體的用戶端 IP 位址。預設值為 false。
  • ASSISTIVE_EXPERIENCES_ENABLED_VALUE:啟用輔助體驗。預設值為 false。

    如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

REST v1

這個範例會設定 AlloyDB 執行個體的進階查詢洞察設定。如需這項呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.instances.patch」。

如要調整進階查詢洞察設定,請將 enabled 欄位設為 true,並視需要修改其他選用欄位。如需這項呼叫的完整欄位清單,請參閱 ObservabilityInstanceConfig。

使用任何要求資料之前,請先替換下列項目:

  • CLUSTER_ID:您建立的叢集 ID。開頭須為小寫英文字母,且只能使用小寫英文字母、數字和連字號。
  • PROJECT_ID:要放置叢集的專案 ID。
  • LOCATION_ID:叢集區域的 ID。
  • INSTANCE_ID:要建立的主要執行個體名稱。

如要修改執行個體設定,請使用下列 PATCH 要求:

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID}?updateMask=observabilityConfig.enabled,observabilityConfig.preserveComments,observabilityConfig.trackWaitEvents,observabilityConfig.maxQueryStringLength,observabilityConfig.recordApplicationTags,observabilityConfig.queryPlansPerMinute,observabilityConfig.trackActiveQueries,observabilityConfig.trackClientAddress,observabilityConfig.assistiveExperiencesEnabled

設定所有進階查詢洞察欄位的要求 JSON 主體如下:

{
 "observabilityConfig": {
   "enabled": true,
   "preserveComments": true,
   "trackWaitEvents": true,
   "maxQueryStringLength": 5000,
   "recordApplicationTags": true,
   "queryPlansPerMinute": 20,
   "trackActiveQueries": true,
   "trackClientAddress": true,
   "assistiveExperiencesEnabled": true
 }
}

偵測及診斷查詢效能問題

您可以使用進階查詢洞察功能,偵測及診斷效能問題。查詢洞察資訊主頁會顯示資料庫負載,這項指標會衡量所選資料庫中執行的查詢作業,在一段時間內執行的工作量 (以 CPU 秒數為單位)。每個執行中的查詢都在使用或等待資源。資料庫負載是指在指定時間範圍內,所有查詢完成所需時間與實際經過時間的比率。

查看已執行查詢的工作量

資料庫負載圖表會按照所選維度劃分,顯示資料庫中執行的所有查詢完成的工作量 (以 CPU 使用秒數為單位)。資料庫負載會依據您從圖表下拉式選單中選取的分布資料劃分。

您可以依下列任一維度細分資料庫負載:

  • 查詢
  • 等待事件類型
  • 等待事件
  • 資料庫
  • 使用者

如要查看資料庫中已執行查詢完成的工作,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 選擇資料庫和使用者。

  5. 選擇要顯示資料的總執行時間,例如 1 或 6 小時,或自訂時間。

  6. 在「Database Load by execution time」(依執行時間劃分的資料庫負載) 下拉式選單中,選擇要調查的維度。圖表會根據您選擇的維度,顯示該維度對整體資料庫負載的影響。舉例來說,如果您從資料庫負載圖表下拉式選單中選取「Wait events」(等待事件) 維度,資料庫負載圖表就會顯示在所選日期範圍內,所選資料庫和使用者發生的所有等待事件細目。

    資料庫負載圖表會顯示所有九種等待事件類型的資料,以及 PostgreSQL 支援的等待事件。系統會根據等待事件和類型的數量,顯示前十個影響最大的等待事件和類型。如果等候事件超過十個,系統會顯示前九個等候事件,其餘則歸入「Others」(其他) 類別。這個方法也適用於其他維度,例如查詢、資料庫和使用者。

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

在「Top dimensions by database load」(各資料庫負載的最大維度) 表格中,您可以查看在「Database Load」(資料庫負載) 圖表中,指定日期範圍和所選維度內,資料庫負載的主要來源。視您在「Top dimensions by database load」(依資料庫負載列出的主要維度) 表格中選擇的維度而定,您可以找出所選時間範圍內的主要值。

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 選擇資料庫和使用者。

  5. 選擇要顯示資料的總執行時間,例如 1 或 6 小時,或自訂時間。

  6. 在「Top dimensions by database load」(各資料庫負載的最大維度) 表格中,您可以點選下列任一項目:

    維度 說明
    查詢 表格會依總執行時間列出最熱門的正規化查詢。各查詢的資料欄會列出下列資訊:
    • 平均執行時間 (毫秒)。查詢的平均執行時間。
    • 總執行時間 (毫秒)。特定查詢的總執行時間。
    • 傳回的資料列數。查詢擷取的平均資料列數。
    • 呼叫次數。應用程式呼叫查詢的次數。
    • %load by chart dimension. 。膠囊圖表會顯示圖表維度在特定查詢中的分布情形。
    等待事件類型 這個表格會列出所選日期範圍內發生的主要等待事件類型。
    • 平均等待時間 (毫秒)。查詢在特定等待事件類型中花費的平均時間。
    • 總等待時間 (毫秒)。查詢在特定等待事件類型中花費的總執行時間。
    • 等待事件類型數量。在所選時間範圍內,特定等待事件類型發生的次數。
    • %load by chart dimension. 藥丸圖表會顯示在資料庫負載圖表下拉式選單中選取的圖表維度,在特定等待事件類型中的分布情形。
    等待事件 這個表格會列出所選日期範圍內發生的主要等待事件。
    • 平均等待時間 (毫秒)。查詢在特定等待事件中花費的平均時間。
    • 總等待時間 (毫秒)。查詢在特定等待事件中花費的總執行時間。
    • 等待事件數量。在所選時間範圍內,特定等待事件發生的次數。
    • %load by chart dimension. 藥丸圖表會顯示在資料庫負載圖表下拉式選單中選取的圖表維度,在特定等待事件中的分布情形。
    資料庫 表格會列出在所選日期範圍內,所有已執行查詢中,負載量最大的資料庫。
    • 資料庫中的平均執行時間 (毫秒)。查詢在特定資料庫中的平均耗費時間。
    • 在資料庫耗費的總時長 (毫秒)。查詢在特定資料庫中花費的總執行時間。
    • %load by chart dimension. 膠囊圖表會顯示在資料庫負載圖表下拉式選單中選取的圖表維度,在特定資料庫中的分布情形。
    使用者 這個表格會列出所選日期範圍內,所有已執行查詢的熱門使用者。
    • 在使用者耗費的平均時間 (毫秒)。查詢在特定使用者身上花費的平均時間。
    • 在使用者耗費的總時長 (毫秒)。特定使用者執行查詢的總時間。
    • %load by chart dimension. 藥丸圖表會顯示在資料庫負載圖表下拉式選單中選取的圖表維度,在特定使用者中的分布情形。

查看查詢執行時間

AlloyDB 的進階查詢洞察功能會在「各資料庫負載的最大維度」表格中,顯示造成資料庫負載的前十名查詢。熱門查詢是指在所選日期範圍內,產生最多資料庫負載的查詢。後續查詢則會以最長執行時間的百分比表示。

如要瞭解「Top dimensions by database load」(依資料庫負載列出的主要維度) 中參數的執行時間如何受到所選圖表維度 (查詢、等待事件類型、等待事件、資料庫和使用者) 的不同值影響,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 選擇資料庫和使用者。

  5. 在「Top dimensions by database load」(各資料庫負載的最大維度) 表格中,查看「% load by chart dimension」(各圖表維度的負載百分比),瞭解表格中的參數如何受到「Database Load」(資料庫負載) 圖表中的參數影響。

    舉例來說,如果您在「Database Load」(資料庫負載) 圖表中選取「All Queries」(所有查詢),然後在「Top dimensions by database load」(依資料庫負載列出的主要維度) 表格中點選「Queries」(查詢) 分頁標籤,「% load by Queries」(查詢負載百分比) 就會列出在指定時間範圍內,所選資料庫中造成最多資料庫負載的查詢。

查看查詢執行時間的詳細資料

您可以在「More details」(更多詳細資料) 中查看查詢執行時間的詳細資料,包括您在資料庫負載圖表和表格中選取的維度、每個等待事件的定義,以及「Others」(其他) 類別中封裝的資料。

「More details」(更多詳細資料) 也會顯示查詢詳細資料畫面中其他地方未顯示的複雜資訊。這項資訊包含每個等待事件的定義。

如要查看查詢執行時間的詳細資料,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 選擇資料庫和使用者。

  5. 在「Top dimensions by database load」(各資料庫負載的最大維度) 表格中,按一下查詢的「More details」(更多詳細資料)。

AlloyDB 的進階查詢洞察功能會顯示正規化查詢 ($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

系統會忽略常數值,以便進階查詢洞察匯總類似查詢,並移除常數可能顯示的任何個人識別資訊 (PII)。

判斷正規化查詢的資料庫負載

如要顯示所選正規化查詢在指定資料庫中,執行查詢時的時間和資源用量 (以 CPU 秒數為單位),請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 選擇資料庫和使用者。

  5. 按一下「資料庫負載」圖表中的「查詢」。為計算資料庫負載,「資料庫負載」圖表會使用正規化查詢在每分鐘內完成所需的時間,與實際經過時間的比值。

「Database Load」(資料庫負載) 圖表頂端會顯示正規化查詢的前 10 KB 字元,其中會移除常值,以便匯總及保護個人識別資訊 (PII)。

為協助判斷各狀態的時間分布情形,AlloyDB 的進階查詢洞察功能會將正規化查詢負載,分配至等待事件和等待事件類型。

您可以使用「Latency」(延遲時間) 圖表研究查詢延遲時間。「Latency」(延遲時間) 是指正規化查詢實際完成時間。平行查詢的延遲時間是以實際經過時間測量,即使查詢的資料庫負載可能較高,因為多個核心用於執行部分查詢。

您可以按照百分位數篩選,查看第 50、第 95 或第 99 個百分位數,偵測不符合預期執行時間的查詢。如要分析標準化查詢的歷來延遲時間,請變更時間範圍。

分析正規化查詢

查詢計畫會針對查詢樣本細分當中的不同作業,讓您瞭解及分析正規化查詢。

查詢計畫範例會提供與正規化查詢相關的查詢計畫範例 EXPLAIN ANALYZE 檢視畫面。這些是已執行的查詢計畫,可提供查詢計畫中每項作業所耗費的執行時間細目。

如要查看查詢計畫範例,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 選擇資料庫和使用者。

  5. 選擇要顯示資料的總執行時間,例如 1 或 6 小時,或自訂時間。

  6. 在「Top dimensions by database load」(各資料庫負載的最大維度) 表格中,按一下查詢。

  7. 在「Query plan samples」(查詢計畫範例) 中,點選圖表上的任一點,即可查看該查詢的查詢計畫。

使用標記監控及排解應用程式效能問題

進階查詢洞察功能提供以應用程式為中心的監控功能,並簡化使用物件關聯對應 (ORM) 建構的應用程式效能診斷。查詢標記可協助您找出較高層級建構中的問題,例如使用商業邏輯、微服務或其他建構。您可以在應用程式中使用標記,協助您執行下列操作:

  • 監控資料庫效能。
  • 使用 Sqlcommenter 找出應用程式程式碼造成的效能問題。
  • 分析資料庫負載。
  • 查看每個代碼的載入時間。

如要瞭解如何在查詢洞察中使用標記,請參閱「使用查詢洞察提高查詢效能」。

在資料庫層排解應用程式問題

進階查詢洞察功能提供情境式端對端追蹤記錄檢視畫面,協助您瞭解特定要求的資料庫層應用程式問題。情境中的端對端應用程式追蹤記錄可協助您判斷問題查詢的來源,例如依模型、檢視、控制器和路徑。

啟用 OpenTelemetry 後,系統會將 span 資訊與 SQL 註解中的標記資訊一併傳送至資料庫。從應用程式到 Cloud Logging 的追蹤記錄會與資料庫查詢計畫追蹤記錄連結,以找出問題來源。

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

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下執行個體。

  3. 按一下「查詢洞察」。

  4. 選擇資料庫和使用者。

  5. 按一下「各資料庫負載的最大維度」表格中的任一項目。

  6. 在「查詢洞察詳細資料」頁面中,按一下「端對端」。

您也可以使用 Cloud Trace,查看查詢計畫中每個步驟的端對端追蹤記錄。如要存取 Cloud Trace,請依序選取「作業」>「Trace」。

常見問題

本節提供進階查詢洞察功能的常見問題解答。

為什麼查詢字串遭到截斷?

根據預設,進階查詢洞察會顯示 10 KB 的查詢字串。您可以將顯示大小增加到 100 KB。

為什麼在「資料庫負載」圖表中,CPU 負載高於核心數量上限線?

CPU 負載會同時考量執行時間,以及等待 Linux 排程器排定伺服器程序執行的時間,因此 CPU 負載可能會超過核心上限。

可以使用標準查詢洞察指標嗎?

可以。標準查詢洞察會產生計數器,可透過 Stackdriver 存取。您可以透過 Cloud Monitoring API 和 Metrics Explorer UI 取得這些指標。詳情請參閱「Google Cloud 指標」。

查詢字串長度上限為何?

標準查詢洞察外掛程式的查詢字串長度上限為 4.5 KB 個字元。進階查詢洞察的預設字串長度為 10 KB,長度上限為 100 KB。

進階查詢洞察功能可以搭配次要叢集使用嗎?

您無法在有次要執行個體的叢集上啟用進階查詢洞察功能。如要在叢集建立次要執行個體,必須先為叢集內的所有執行個體停用進階查詢洞察功能。

後續步驟