使用「探索」查詢追蹤器和「效能」面板監控查詢效能

探索查詢追蹤器探索效能面板會提供探索查詢的逐步效能資料。這項資料有助於找出查詢效能問題的關鍵進入點,並提供改善建議。

探索查詢追蹤器

探索查詢追蹤器會在查詢執行期間,顯示探索查詢的三個階段進度。

如果查詢執行時間過長,查詢追蹤器可以指出是查詢的哪個階段導致效能問題。這有助於找出可能發生效能問題的部分,以及最需要進行最佳化的地方。

只要開啟「探索」的「資料視覺化」面板或「資料」面板,就會在執行探索時顯示查詢追蹤器。

探索「成效」面板

如要查看「探索」面板中的「成效」資訊,請按一下「查看成效詳情」連結。這個連結會顯示在您執行的任何「探索」查詢中。

「Performance」面板會顯示查詢在每個查詢階段中花費的時間,並提供連結至效能說明文件和「Query History」系統活動資訊主頁,後者會顯示查詢和用於建立查詢的 Explore 目前和歷來效能資料。

查詢階段

當 Looker 探索執行資料庫查詢時,查詢會分三個階段執行,如下所示:

查詢初始化階段

在「查詢初始化」階段,Looker 會先執行所有必要工作,再將查詢傳送至資料庫。「查詢初始化」階段包含下列工作:

瞭解查詢效能指標說明文件頁面說明如何在「系統活動」中使用「查詢效能指標」探索功能,查看查詢的詳細分析資料。查詢追蹤器的「查詢初始化」階段包含「查詢效能指標」探索的「非同步 worker 階段」、「初始化階段」和「連線處理階段」所述的事件。

執行查詢階段

在「執行查詢」階段,Looker 會連線至資料庫並進行查詢,然後傳回查詢結果。這個階段出現的效能問題,可能表示外部資料庫有問題,例如需要花費很長時間重建的 PDT 可能需要最佳化,或是外部資料庫表格可能需要最佳化。「執行查詢」階段包含下列工作:

  • 在資料庫中建立探索查詢所需的任何 PDT
  • 在資料庫上執行要求的查詢

瞭解查詢效能指標說明文件頁面說明如何在「系統活動」中使用「查詢效能指標」探索功能,查看查詢的詳細分析資料。查詢追蹤器的「執行查詢」階段包含「查詢成效指標」探索功能的「主要查詢階段所述的事件。

如果您在這階段遇到效能問題,可以採取以下步驟:

  • 盡可能使用 many_to_one 彙整建立探索。從最精細的層級到最高精細度的資料 (many_to_one) 進行彙整,通常可提供最佳查詢效能。
  • 盡可能充分運用快取功能,以便與 ETL 政策同步,進而減少資料庫查詢流量。根據預設,Looker 會快取查詢一小時。您可以使用 persist_with 參數,在探索中套用datagroups,藉此控制快取政策,並透過 ETL 程序同步 Looker 資料更新。最大化快取功能可讓 Looker 更緊密地與後端資料管道整合,因此快取使用率可達到最高,且不會有分析過時資料的風險。命名快取政策可套用至整個模型,或個別的探索和持久衍生資料表 (PDT)。
  • 請使用 Looker 的匯總認知功能,盡可能建立可供 Looker 用於查詢的匯總或摘要表格,特別是針對大型資料庫的常見查詢。您也可以使用匯總認知度,大幅提升整個資訊主頁的成效。詳情請參閱匯總感知教學課程
  • 使用 PDT 加快查詢速度。將含有許多複雜或效能不佳的彙整作業的探索,或含有子查詢或子選取的維度,轉換為 PDT,讓檢視畫面在執行階段前先行彙整並準備就緒。
  • 如果資料庫方言支援漸進式 PDT,請設定漸進式 PDT,以縮短 Looker 重建 PDT 資料表所需的時間。
  • 請勿將檢視畫面與 Looker 中定義的連接主鍵彙整在一起。請改為彙整檢視畫面中組成連結主索引鍵的基礎欄位。或者,您也可以將檢視表重新建立為 PDT,並使用資料表 SQL 定義中預先定義的連結主鍵,而不是檢視表的 LookML。
  • 使用 SQL Runner 中的說明工具進行基準測試。EXPLAIN 會針對特定 SQL 查詢產生資料庫查詢執行計劃的概覽,讓您偵測可最佳化的查詢元件。詳情請參閱「如何使用 EXPLAIN 最佳化 SQL」社群貼文。
  • 宣告索引。您可以直接在 SQL Runner 的 Looker 中查看各個表格的索引,方法是按一下表格中的齒輪圖示,然後選取「Show Indexes」

    最常見的索引欄通常是重要日期和外鍵。為這些資料欄新增索引,幾乎可提升所有查詢的效能。這也適用於 PDT。您可以適當套用 LookML 參數,例如 indexessort keysdistribution

處理結果階段

在「處理結果」階段,Looker 會處理及呈現查詢結果。「處理結果」階段包含下列工作:

瞭解查詢效能指標說明文件頁面說明如何在「系統活動」中使用「查詢效能指標」探索功能,查看查詢的詳細分析資料。查詢追蹤器的「處理結果」階段會納入「查詢成效指標」探索功能的「查詢後階段」所述的事件。

如果您在這階段遇到效能問題,可以採取的可能步驟包括:

  • 請謹慎使用合併結果自訂欄位資料表計算等功能。這些功能可做為概念驗證,協助您設計模型。建議您在 LookML 中為所有常用的計算和函式設定硬式編碼,系統會產生 SQL 以便在資料庫中處理。過多的運算可能會爭奪 Looker 例項的 Java 記憶體,導致 Looker 例項回應速度變慢。
  • 當檢視檔案數量龐大時,請限制模型中納入的檢視數量。在單一模型中納入所有檢視畫面可能會降低效能。如果專案中有多個檢視畫面,建議您只納入各模型所需的檢視畫面檔案。建議您為檢視畫面檔案名稱使用策略命名規則,以便在模型中加入一組檢視畫面。如需範例,請參閱 includes 參數說明文件。
  • 請避免在資訊主頁資訊方塊和 Look 中,預設傳回大量資料點。傳回數千個資料點的查詢會耗用更多記憶體。請務必將前端 篩選器套用至資訊主頁、Look 和 Explore,並在 LookML 層級使用 required filtersconditionally_filtersql_always_where 參數,以便盡可能限制資料。
  • 請謹慎使用「所有結果選項下載或提交查詢,因為某些查詢可能非常龐大,在處理時會讓 Looker 伺服器不堪負荷。