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

探索查詢追蹤器「探索」「效能」面板會提供探索查詢的逐步成效資料。這項資料有助於找出疑難排解的主要切入點,並解決查詢效能問題,以及提供改善建議。

探索查詢追蹤器

在查詢執行期間,探索查詢追蹤工具會顯示探索查詢的進度,包括查詢的三個階段

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

只要開啟「探索」圖表面板或「探索」資料面板,執行探索時就會顯示查詢追蹤器。

探索「效能」面板

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

「效能」面板會顯示查詢在三個查詢階段中花費的時間,並提供效能文件和「查詢記錄」系統活動資訊主頁的連結,其中會顯示查詢和用於建立查詢的探索的目前和歷來效能資料。

查詢階段

當 Looker 探索執行資料庫查詢時,查詢會依序經過下列三個階段:

查詢初始化階段

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

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

執行查詢階段

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

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

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

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

  • 盡可能使用 many_to_one 聯結來建構「探索」資料表。將最詳細的檢視表分別彙整至提供整體資料的檢視表 (many_to_one),通常能讓查詢發揮最佳效能。
  • 請盡可能充分利用快取功能,配合 ETL 政策,減少資料庫查詢流量。根據預設,Looker 會快取查詢一小時。您可以使用 persist_with 參數,在探索中套用資料群組,藉此控管快取政策,並讓 Looker 資料重新整理作業與 ETL 程序保持同步。充分利用快取可讓 Looker 與後端資料管道更密切整合,在充分利用快取的同時,避免分析到過時資料。具名快取政策可套用至整個模型,或個別探索和永久衍生資料表 (PDT)。
  • 使用 Looker 的匯總感知功能建立匯總或彙整資料的表格,讓 Looker 盡可能在查詢時使用這類表格,特別是查詢大型資料庫時。您也可以使用匯總認知,大幅提升整個資訊主頁的效能。詳情請參閱匯總認知度教學課程
  • 使用 PDT 可加快查詢速度。將含有許多複雜或效能不佳的聯結,或是含有子查詢或子選取的維度,轉換為 PDT,這樣檢視畫面就會預先聯結,並在執行階段前準備就緒。
  • 如果您的資料庫方言支援累加型永久衍生資料表,請設定累加型永久衍生資料表,縮短 Looker 重建永久衍生資料表的時間。
  • 避免在探索中,將檢視區塊彙整至 Looker 中定義的串連主鍵。請改為根據檢視區塊中構成串連主鍵的基本欄位進行彙整。或者,您也可以將檢視區塊重新建立為 PDT,並在資料表的 SQL 定義中預先定義串連的主鍵,而不是在檢視區塊的 LookML 中定義。
  • 使用 SQL Runner 說明工具進行基準測試。EXPLAIN 會針對指定的 SQL 查詢,產生資料庫查詢執行計畫的總覽,方便您偵測可最佳化的查詢元件。詳情請參閱這篇社群貼文EXPLAIN,瞭解如何使用 EXPLAIN 最佳化 SQL。
  • 宣告索引。您可以在 Looker 中直接透過 SQL Runner 查看每個資料表的索引,方法是按一下資料表中的齒輪圖示,然後選取「Show Indexes」

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

「正在計算測驗成績」階段

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

瞭解查詢效能指標」說明文件頁面說明如何使用「系統活動」中的「查詢效能指標」探索功能,查看查詢的詳細細目。查詢追蹤器的「處理結果」階段包含「查詢效能指標」探索功能「查詢後階段」中說明的事件。

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

  • 請盡量少用合併結果自訂欄位表格計算等功能。這些功能僅適用於概念驗證,協助您設計模型。最佳做法是在 LookML 中將任何常用計算和函式硬式編碼,這樣系統就會產生 SQL,在資料庫中處理。過多的計算可能會與 Looker 執行個體上的 Java 記憶體競爭,導致 Looker 執行個體的回應速度變慢。
  • 如果檢視表檔案數量龐大,請限制模型中包含的檢視表檔案數量。在單一模型中納入所有檢視表檔案可能會降低效能。如果專案中包含大量檢視表檔案,請考慮只在每個模型中納入所需的檢視表檔案。請考慮為檢視表檔案名稱採用策略性命名慣例,以便在模型中納入檢視表檔案群組。includes 參數說明文件中提供範例。
  • 避免在資訊主頁圖塊和 Look 中預設傳回大量資料點。傳回數千個資料點的查詢會耗用更多記憶體。請盡可能限制資料,方法是在資訊主頁、Look 和探索中套用前端 篩選器,並在 LookML 層級使用 required filtersconditionally_filtersql_always_where 參數。
  • 請盡量不要使用「所有結果」選項下載或傳送查詢,因為部分查詢可能非常龐大,處理時會對 Looker 伺服器造成負擔。