什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
本教程將討論CallBackDataID,這是 DAX Studio 中的一個性能問題。您將了解它的作用以及它如何影響 DAX 查詢的性能。
存儲引擎以數據緩存的形式向公式引擎提供數據。但是當存儲引擎無法評估表達式時,它會使用 CallBackDataID 請求並回調公式引擎以尋求幫助。
在計算中使用CallBackDataID會降低 DAX 的性能,因為它同時使用存儲和公式引擎。但是,它仍然比僅讓公式引擎完成所有工作要好,因為它仍然在壓縮數據上執行並且不需要具體化。
此外,當涉及公式引擎時,不會緩存結果。緩存改善了用戶在 LuckyTemplates 中運行查詢或度量的體驗。
目錄
在哪裡可以找到 CallBackDataID
CallBackDataID可以在 DAX Studio 中的 Server Timings 中找到。由於它們的重要性,它們在 xmSQL 語句中突出顯示。當您希望優化 DAX 時,找到 CallBackDataID是最好的起點。
另一種優化技術是盡可能利用在過濾器中使用CALCULATE比將用作表格要好。FILTER是一個迭代器,當您過濾一個表時,它將被迭代。這兩個迭代器的存在可能會減慢您的查詢速度。
下面是帶有和不帶有CallBackDataID 的兩個示例查詢。
這是定義上述兩個查詢的本地化度量。
最上面的度量迭代銷售表,將當前價格和數量相乘,然後求和。底部度量檢查購買日期是否大於或等於 2016 年 3 月 31 日。在度量中使用函數會創建一個CallBackDataID,因為它沒有使用CALCULATE。
要對此進行測試,請運行具有CallBackDataID的查詢。確保在運行之前清除緩存並打開服務器計時和查詢計劃。
如果單擊底部的 Server Timings 選項卡,您可以看到第一個掃描突出顯示。這是因為存在CallBackDataID。
您還可以在 xmSQL 語句中看到CallBackDataID 。measure 中的IF函數超出了存儲引擎的能力,所以它向公式引擎求助。
如何解決性能問題
如果您運行沒有CallBackDataID 的查詢,您會看到掃描不再突出顯示。
這是因為CALCULATE過濾器被下推到存儲引擎。它不再需要公式引擎的幫助,因為它可以自己工作。
盡可能嘗試在CALCULATE中使用過濾器。它通過將大部分工作推入存儲引擎來優化 DAX 性能,使其更快。
LuckyTemplates 中的存儲引擎 –
LuckyTemplates 中的 VertiPaq 運算符和查詢測量:優化技巧和技術
DAX Studio 中的 VertiPaq 分析器 | LuckyTemplates 教程
結論
如果您的查詢對於存儲引擎來說太複雜而無法工作,則可能會出現性能下降。它會在計算中帶來不必要的進程,例如CallBackDataID,並減慢您的 DAX。您可以通過在CALCULATE中使用過濾器來緩解它。
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的