監控執行中的查詢

如要找出 AlloyDB for PostgreSQL 系統延遲和 CPU 使用率偏高的原因,可以監控資料庫中執行時間較長的活動查詢,並排解相關問題。

您可以在Google Cloud 控制台的「Query insights」(查詢洞察) 頁面中,查看執行中的查詢,並依交易開始時間排序。如果執行的查詢數量過多,頁面可能會因資料收集的記憶體限制,而只顯示部分查詢。

事前準備

如要開始查看執行中的查詢,請啟用進階查詢洞察功能,並為執行個體啟用執行中查詢分析,步驟如下:

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

    前往「Clusters」(叢集) 頁面

  2. 在叢集和執行個體清單中,按一下「主要」或「讀取集區」執行個體。

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

  4. 點按「Edit Settings」(編輯設定)。

  5. 在「編輯查詢洞察設定」視窗中,依序選取「啟用 AlloyDB 適用的進階查詢洞察功能」 >「執行中查詢分析」。

  6. 按一下 [儲存變更]。

  7. 在「必須重新啟動,變更才會生效」視窗中,按一下「確認並重新啟動」。

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

查看執行中的查詢

如要查看執行中的查詢,請按照下列步驟操作:

  1. 建立自訂角色,並新增 databaseinsights.monitoringViewer Identity and Access Management (IAM) 權限。

  2. 為每位查看有效查詢的使用者新增這個角色。

  3. 在 Google Cloud 控制台中,開啟「AlloyDB」AlloyDB頁面。

    前往 AlloyDB

  4. 按一下叢集名稱,開啟「總覽」頁面。

  5. 選取「Query insights」(查詢洞察) 分頁標籤。查詢洞察資訊主頁會顯示所選叢集的詳細資料。

  6. 按一下「Active queries view」(有效查詢檢視畫面) 分頁標籤。這個分頁會顯示執行中查詢的摘要,以及執行時間最長的 50 筆交易。

    您可以透過下列任一方式篩選資訊:

    • 資料庫:篩選特定資料庫或所有資料庫的查詢負載。
    • 使用者:篩選特定資料庫使用者或所有使用者的查詢負載。
    • 節點 ID:僅適用於讀取集區執行個體,可篩選特定讀取集區執行個體節點或所有節點的查詢負載。

    所有正規化執行中查詢的摘要評量表:根據下列參數顯示連線總數,提供所有執行中查詢的總覽:

    • 按照連線狀態分類的有效連線分布。
    • 依據不同等候事件類型,顯示有效連線的分佈情形。
    • 非閒置狀態查詢的交易時間長度分布情形。

    執行時間最長的交易:提供 active 和 idle in transaction 狀態下前 50 項執行中查詢的總覽,並依執行時間遞減排序。

您可以在查詢洞察資訊主頁上,查看前五十個正規化執行中查詢的清單。

正規化的執行中查詢會移除機密資料,並傳回摘要。如果兩個查詢除了 WHERE 子句值以外完全相同,則摘要也會相同。以下列三個查詢為例:

  • select * from my_table where id = 1;
  • select * from my_table where id = 2;
  • select * from my_table where id = 100;

這些查詢的標準化版本是下列摘要:

select * from my_table where id = ?;

在不同工作階段中執行的查詢,會在資訊主頁上顯示為不同項目。

查看執行時間最長的交易

下表說明查詢洞察資訊主頁中「Longest running transactions」(執行時間最長的交易) 資料表的資料欄:

資料欄名稱 說明
程序 ID 程序 ID 是資料庫連線的專屬 ID。
節點 ID 節點 ID 是執行查詢的讀取集區執行個體節點專屬 ID。
查詢 正規化 SQL 查詢文字。
狀態 連線的目前狀態。狀態值包括 active 和 idle in transaction。
工作階段持續時間 目前工作階段持續時間 (以秒為單位)。
交易時間長度 目前交易的時長 (秒)。
查詢時間長度 目前運作中查詢持續時間 (以秒為單位)。處於 idle in transaction 狀態的查詢並未主動執行,因此查詢時間長度為 0。
等待事件類型 查詢執行期間發生的等待事件類型。
等待事件 查詢執行期間發生的等待事件。
資料庫 執行這個連線的資料庫名稱。
應用程式名稱 執行這項連線的應用程式名稱。
使用者名稱 連線至資料庫的資料庫使用者名稱。
用戶端位址 傳送查詢的用戶端特定 IP 位址。
動作 包含終止交易的連結。

顯示畫面每 60 秒會自動重新整理。

使用「Database」(資料庫) 和「User」(使用者) 欄位篩選,即可重新整理頁面上的資料。

如要分析靜態資料,請停用「自動重新整理」,並視需要使用「執行時間最長的交易」表格的「篩選器」欄位。

終止查詢或交易

如要終止查詢或交易,您必須具備 databaseinsights.operationsAdmin 角色。詳情請參閱「IAM 基本和預先定義的角色參考資料」。

一筆交易可包含多項查詢。如要找出目前有哪些查詢正在執行,請查看「Longest running transaction」(執行時間最長的交易) 表格中的「Query」(查詢) 欄。

如要終止查詢或交易,請完成下列步驟:

  1. 在「Longest running transaction」(執行時間最長的交易) 表格中選取查詢。
  2. 向右捲動至「Action」欄。
  3. 按一下「終止連線」。
  4. 在「終止連線」視窗中,按一下「確認」。

    啟動終止程序後,頁面會重新整理。如果終止失敗,系統不會顯示任何訊息,且查詢會繼續顯示在「Active Query」(有效查詢) 清單中。如果終止成功,查詢就不會再顯示在清單中。

後續步驟