瞭解查詢效能指標

「系統活動」中的「查詢成效指標」探索會詳細列出從 Looker 執行個體執行的每項查詢。

舉例來說,您可以使用這項探索功能,調查查詢中哪些元件的載入時間最長。您也可以使用這個探索功能,找出查詢效能趨勢和異常狀況。

如要進一步瞭解系統活動中的探索,請參閱「使用系統活動探索監控 Looker 用量」說明文件頁面。

查看查詢成效指標

您可以在「系統活動」的「查詢效能指標」探索中,查看查詢效能指標。您必須是 Looker 管理員或具備 see_system_activity 權限,才能查看「查詢效能指標」探索。

瞭解 Looker 查詢生命週期

Looker 傳送至資料庫的每項查詢都會經歷多個階段,每個階段又包含多個步驟。在「查詢成效指標」探索中,每個步驟都會以維度表示。

大致來說,各階段的概念如下:

  1. 佇列:查詢等待可用的非同步工作人員。
  2. 初始化和連線:worker 會準備查詢並連線至資料庫。
  3. 執行查詢:Looker 會在資料庫中執行主要查詢和任何其他查詢,例如總計或衍生資料表,並載入結果。
  4. 處理結果:Looker 會後續處理結果,並將結果寫入快取。

Async processing 會追蹤非同步 worker 處理查詢的總時間,涵蓋第 2 到第 4 階段。如果是來自探索和資訊主頁的查詢,這些階段的累計時間長度大約等於 Async processing 值。如果是下載、排定傳送時間和其他匯出結果,Stream to Cache 會與其他階段重疊;在這些情況下,各階段的總時間可能會超過總 Async processing 時間。

查詢成效指標

以下各節依時間順序列出各個查詢階段。每個查詢階段部分都會依字母順序列出查詢步驟。每項查詢步驟指標都是以經過時間 (秒) 為單位。

時間碼:佇列

查詢步驟 指標說明
Queued 查詢等待非同步 worker 執行查詢的時間 (以秒為單位)。

時間:初始化和連線

查詢步驟 指標說明
Acquire Connection Looker 執行個體取得客戶資料庫連線所需的時間 (以秒為單位)。這個步驟包括查詢使用者憑證,以及建立連線集區 (如果尚未建立) 的時間。
Cache Load 從結果集快取提取原始結果所需的時間 (以秒為單位)。
Explore Init: Computed 開始prepare探索前,初始化探索所需的時間 (以秒為單位)。如果這個步驟傳回空值,表示探索是從快取擷取,而非從頭載入及剖析。(請參閱Explore Init: From Cache步驟)。
Explore Init: From Cache 從快取提取「探索」初始化作業所需的時間 (以秒為單位)。如果這個步驟傳回空值,表示系統已載入並剖析探索,而非從快取提取。(請參閱Explore Init: Computed步驟)。
Model Init: Computed 載入及剖析執行查詢所需的模型所花的時間 (以秒為單位)。如果這個步驟傳回空值,表示模型是從快取擷取,而非從頭載入及剖析。(請參閱 Model Init: From Cache 步驟)。
Model Init: From Cache 從快取提取模型定義所需的時間 (以秒為單位)。如果這個步驟傳回空值,表示模型已載入並剖析,而非從快取提取。(請參閱 Model Init: Computed 步驟)。
Per User Throttler 查詢等待連線可用,以便使用者執行查詢的時間 (以秒為單位)。
Prepare 從探索定義準備查詢所需的時間 (以秒為單位)。
Project Init 初始化 LookML 專案或從快取讀取專案所需的時間 (以秒為單位)。

時間:執行查詢

查詢步驟 指標說明
Execute Grand Totals Query 執行查詢以產生客戶資料庫總計所需的時間 (以秒為單位)。僅適用於同時啟用總計和列總計的查詢。
Execute Main Query 在顧客資料庫中執行 primary 查詢所需的時間 (以秒為單位)。這不包括連線初始化時間或節流時間;這段時間會在連線初始化和任何節流完成後開始。
Execute Misc. Ancillary Queries 在客戶資料庫中執行支援查詢 (例如範圍和維度填補查詢) 所需的時間 (以秒為單位)。
Execute Row Totals Query 執行查詢以在客戶資料庫中產生資料列總計所需的時間 (以秒為單位)。僅適用於已啟用資料列總計的查詢。
Execute Totals Query 執行查詢以產生顧客資料庫總計所需的時間 (以秒為單位)。僅適用於已啟用總計的查詢。
Load Grand Totals Query In Memory 載入查詢以將總計產生至記憶體所需的時間 (以秒為單位)。僅適用於非串流查詢,且必須同時啟用總計和資料列總計。
Load Main Query In Memory 從客戶資料庫將主要查詢結果載入記憶體所需的時間 (以秒為單位)。僅適用於非串流查詢。
Load Misc. Ancillary Queries In Memory 將支援查詢 (例如範圍和維度填補查詢) 載入記憶體所需的時間 (以秒為單位)。
Load Process and Stream Main Query 載入主要查詢 (從客戶資料庫)、處理查詢 (在 Looker 執行個體上),以及串流查詢 (至用戶端) 所需的時間 (以秒為單位)。僅適用於串流查詢。
Load Row Totals Query In Memory 載入查詢以將資料列總計產生至記憶體所需的時間 (以秒為單位)。僅適用於啟用資料列總計的非串流查詢。
Load Totals Query In Memory 載入查詢以產生總計並存入記憶體所需的時間 (以秒為單位)。僅適用於已啟用總計的非串流查詢。
PDTs 建構查詢所需永久衍生資料表的時間 (以秒為單位)。
Temporary DT 建構臨時衍生資料表所用的時間 (以秒為單位)。僅適用於不支援一般資料表運算式 (CTE) 或內嵌衍生資料表的方言,例如 MySQL。

時間:處理結果

查詢步驟 指標說明
Postprocessing 後置處理查詢所需的時間 (以秒為單位)。在連線關閉後發生。
Stream to Cache 結果串流至快取的時間 (以秒為單位)。如果是下載、排定傳送作業和其他匯出結果,這個步驟會包含執行查詢,因此會與其他階段的指標重疊。

時間:整體

查詢步驟 指標說明
Async processing 非同步 worker 執行查詢的時間 (以秒為單位)。worker 會繼續處理查詢,直到處理結果階段完成為止,因此這項指標會與這個頁面上的大多數其他指標重疊。
Connection Held Looker 執行個體與客戶資料庫保持連線的時間 (以秒為單位)。這個步驟包含客戶資料庫執行 SQL 查詢所需的時間。

每項指標也都有平均值。「Timings: Summaries」群組會顯示每個階段的總時間和平均時間。

BigQuery BI Engine 指標

如果您搭配使用 BigQuery BI Engine 和 Looker,可以透過「查詢成效指標」探索功能,查看查詢的資料庫專屬資訊。如果查詢未使用 BI Engine,或查詢的資料庫並非 BigQuery 資料庫,這些指標會傳回空值。

指標 指標說明
BigQuery Job ID

查詢的 BigQuery 工作 ID (或 NULL)。

為縮短 BigQuery 查詢的回應時間,Looker 會使用 jobCreationMode=JOB_CREATION_OPTIONAL 執行 BigQuery 查詢。在此模式下,如果 BigQuery 判斷查詢可以快速完成,就會優先傳回即時結果,而不是建立 BigQuery 工作。在這種情況下,查詢會具有 BigQuery 查詢 ID (而 BigQuery 工作 ID 會是 NULL)。

如果 BigQuery 判斷無法立即傳回結果,就會建立工作,而查詢會取得 BigQuery 工作 ID (BigQuery 查詢 ID 則為 NULL)。

BigQuery Query ID

查詢的 BigQuery 查詢 ID (或 NULL)。

為縮短 BigQuery 查詢的回應時間,Looker 會使用 jobCreationMode=JOB_CREATION_OPTIONAL 執行 BigQuery 查詢。在此模式下,如果 BigQuery 判斷查詢可以快速完成,就會優先傳回即時結果,而不是建立 BigQuery 工作。在這種情況下,查詢會具有 BigQuery 查詢 ID,而非 BigQuery 工作 ID。

如果 BigQuery 判斷無法立即傳回結果,就會建立工作,而查詢會取得 BigQuery 工作 ID (BigQuery 查詢 ID 則為 NULL)。如果這個欄位留空,代表 BigQuery 無法立即執行查詢,而是建立工作來執行查詢。請改為查看 BigQuery Job ID,取得 BigQuery 工作 ID。

BI Engine Mode 查詢是否能部分或完全加速執行。如要進一步瞭解這個欄位的可能值,請參閱「BI Engine 加速統計資料」。
BI Engine Reason 如果查詢無法完全加速執行,這個欄位會顯示原因。這則訊息直接來自 Google BigQuery。

使用查詢效能指標排解問題

分析查詢指標有助於提升 Looker 執行個體的效能。首先,請從系統活動資訊主頁清單中選取「Performance Recommendations」資訊主頁。