分析 Direct Lake 語意模型的查詢處理
Direct Lake 模式中的 Power BI 語意模型,除非必須遞補為 DirectQuery 模式,否則會直接從 OneLake 讀取 Delta 資料表。 常見的遞補原因包括記憶體壓力,該壓力可能妨礙處理 DAX 查詢所需的資料行載入,而且資料來源的某些功能可能不支援 Direct Lake 模式,例如倉儲和 Lakehouse 中的 SQL 檢視。 一般而言,除非必須遞補為 DirectQuery 模式,否則 Direct Lake 模式提供的 DAX 查詢效能最優異。 由於遞補為 DirectQuery 模式可能影響 DAX 查詢效能,因此請務必分析 Direct Lake 語意模型的查詢處理,識別是否發生遞補及其頻率。
使用效能分析器分析
效能分析器讓您快速輕鬆了解,視覺效果如何查詢資料來源,以及轉譯結果耗費的時間。
開啟 Power BI Desktop。 在啟動畫面選取 [新增報告]>。
從功能區選取 [取得資料],然後選取 [Power BI 語意模型]。
在 [OneLake 資料中樞] 頁面,選取您要連線的 Direct Lake 語意模型,然後選取 [連線]。
將卡片視覺效果放在報表創作區、選取資料行以建立基本報表,然後在 [檢視] 功能表選取 [效能分析器]。
在 [效能分析器] 窗格選取 [開始錄製]。
在 [效能分析器] 窗格選取 [重新整理視覺效果],然後展開卡片視覺效果。 卡片視覺效果不會造成任何 DirectQuery 處理,表示語意模型能在 Direct Lake 模式處理視覺效果的 DAX 查詢。
如果語意模型為處理視覺效果的 DAX 查詢遞補為 DirectQuery 模式,您會看到 [Direct 查詢] 效能計量,如下圖所示:
使用 SQL Server Profiler 分析
SQL Server Profiler 可追蹤查詢事件,提供更多查詢效能的詳細資料。 它是使用 SQL Server Management Studio (SSMS) 安裝。 開始之前,請確定您已安裝最新版本的 SSMS。
從 Windows 功能表啟動 SQL Server Profiler。
在 SQL Server Profiler 選取 [檔案]>[新追蹤]。
在 [連線到伺服器]>[伺服器類型] 中,選取 [Analysis Services],然後在 [伺服器名稱] 輸入工作區的 URL,接著選取驗證方法,然後輸入使用者名稱以登入工作區。
選取選項。 在 [連線到資料庫] 輸入語意模型的名稱,然後選取 [連線]。 登入 Microsoft Entra ID。
在 [追蹤屬性]>[事件選取] 中,選取 [顯示所有事件] 核取方塊。
捲動至 [查詢處理] ,然後選取下列事件的核取方塊:
活動 描述 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) 事件與匯入模式相同。 其看起來應該如下:
選取執行。 在 Power BI Desktop 中,建立新的報表,或是與現有報表互動以產生查詢事件。 檢閱 SQL Server Profiler 追蹤報表,了解查詢處理事件。
下圖顯示 DAX 查詢的查詢處理事件範例。 在此追蹤,VertiPaq 儲存引擎 (SE) 事件表示,查詢是在 Direct Lake 模式處理。