Share via


分析 Direct Lake 語意模型的查詢處理

Direct Lake 模式中的 Power BI 語意模型會直接從 OneLake 讀取 Delta 數據表,除非它們必須回復到 DirectQuery 模式。 典型的後援原因包括記憶體壓力,可避免載入處理 DAX 查詢所需的數據行,而且數據源的某些功能可能不支援 Direct Lake 模式,例如倉儲和 Lakehouse 中的 SQL 檢視。 一般而言,除非需要 DirectQuery 模式後援,否則 Direct Lake 模式會提供最佳的 DAX 查詢效能。 由於 DirectQuery 模式的後援可能會影響 DAX 查詢效能,因此請務必分析 Direct Lake 語意模型的查詢處理,以識別後援的發生頻率和頻率。

使用效能分析器進行分析

效能分析器可讓您快速且輕鬆地了解視覺效果如何查詢數據源,以及轉譯結果所花費的時間。

  1. 啟動 Power BI Desktop。 在啟動畫面上,選取 [新增>報表]。

  2. 從功能區選取 [取得數據 ],然後選取 [Power BI 語意模型]。

  3. 在 OneLake 數據中頁面中,選取您要連線的 Direct Lake 語意模型,然後選取 [連線]。

  4. 將卡片視覺效果放在報表畫布上,選取數據行以建立基本報表,然後在 [ 檢視 ] 功能表上,選取 [效能分析器]。

    [效能分析器] 窗格的螢幕快照。

  5. 在 [ 效能分析器] 窗格中,選取 [ 開始錄製]。

    在效能分析器中開始錄製的命令螢幕快照。

  6. 在 [ 效能分析器 ] 窗格中,選取 [重新整理視覺效果],然後展開 [卡片視覺效果]。 卡片視覺效果不會造成任何 DirectQuery 處理,這表示語意模型能夠在 Direct Lake 模式中處理視覺效果的 DAX 查詢。

    如果語意模型回復為 DirectQuery 模式來處理視覺效果的 DAX 查詢,您會看到 Direct 查詢 效能計量,如下圖所示:

    直接查詢效能計量的螢幕快照。

使用 SQL Server Profiler 進行分析

SQL Server Profiler 可以追蹤查詢事件來提供更多查詢效能的詳細數據。 其會隨 SQL Server Management Studio (SSMS) 一起安裝。 開始之前,請確定您已安裝最新版本的 SSMS。

  1. 從 Windows 功能表啟動 SQL Server Profiler。

  2. 在 [SQL Server Profiler] 中,選取 [檔案>新追蹤]。

  3. [連線 至伺服器>伺服器類型] 中,選取 [Analysis Services],然後在 [伺服器名稱] 中輸入工作區的 URL,然後選取驗證方法,然後輸入使用者名稱以登入工作區。

    SQL Server Profiler 中 連線 至伺服器對話框的螢幕快照。

  4. 選取選項。 在資料庫 連線 中,輸入語意模型的名稱,然後選取 [連線]。 登入 Microsoft Entra ID。

    連線 至資料庫欄位所指定資料庫名稱的螢幕快照。

  5. [追蹤屬性>事件選取專案] 中,選取 [ 顯示所有事件 ] 複選框。

    [事件] 選取專案 - [顯示所有事件] 複選框的螢幕快照。

  6. 捲動至 [查詢處理],然後選取下列事件的複選框:

    活動 描述

    DirectQuery_Begin DirectQuery_End
    如果追蹤中出現 DirectQuery Begin/End 事件,語意模型可能已回復為 DirectQuery 模式。 不過,請注意,EngineEdition 查詢的存在以及檢查物件層級安全性 (OLS) 的查詢並不代表後援,因為引擎一律會針對這些非查詢處理相關檢查使用 DirectQuery 模式。

    VertiPaq_SE_Query_Begin VertiPaq_SE_Query_Cache_Match
    VertiPaq_SE_Query_Cache_Miss VertiPaq_SE_Query_End

    Direct Lake 模式中的 VertiPaq 儲存引擎 (SE) 事件與匯入模式相同。

    其看起來應該如下:

    顯示 SQL Server Profiler 中選取查詢處理事件的螢幕快照。

  7. 選取執行。 在 Power BI Desktop 中,建立新的報表或與現有報表互動以產生查詢事件。 檢閱 SQL Server Profiler 追蹤報告,以取得查詢處理事件。

    下圖顯示 DAX 查詢的查詢處理事件範例。 在此追蹤中,VertiPaq 儲存引擎 (SE) 事件表示查詢是在 Direct Lake 模式中處理。 SQL Server Profiler 中查詢處理事件的螢幕快照。