什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
本教程將介紹 DAX 查詢結構和 DAX Studio 中的兩個引擎。您將看到 DAX 公式產生結果的背後過程。您還將了解每個引擎在您的計算中是如何工作的。
有兩個引擎負責產生數據:公式引擎和VertiPaq 存儲引擎。
目錄
DAX 查詢結構
本教程將深入展示 DAX 查詢結構,了解 DAX 如何在報表背後運行。
您創建的每個度量都是一個查詢。它處理一組數據並返回答案。然後查詢與 SQL Server Analysis Services 對話。它是在後台運行的 LuckyTemplates 的定製版本。
編寫查詢後,它會被發送到公式引擎。它回答所有 DAX 但不如存儲引擎高效。
一旦公式引擎收到查詢,它就會向 VertiPaq 存儲引擎請求要處理的數據。然後,存儲引擎從壓縮數據緩存中獲取數據。
VertiPaq 之所以高效,是因為它適用於壓縮列。它可以在幾毫秒內計算出很多行。
在圖表的末尾,您可以看到數據源。此事務僅在您進行數據刷新時發生。
您需要了解的另一件事是存儲引擎可以回答簡單的查詢。否則,它將數據緩存發送回公式引擎以計算答案。
當它將該數據發送回公式引擎時,它不再被壓縮。它使用內存中的完整列。
因此,在公式引擎取回數據後,它會計算並填充 DAX 查詢的答案。
DAX 查詢結構的引擎
了解公式引擎和存儲引擎之間的區別很重要。它們中的每一個都是為不同的目的而設計的,因此您可以應用您的 DAX 知識並獲得快速準確的查詢。這些是兩個引擎之間的差異:
每個引擎的圖標代表它們的性能有多快。存儲引擎比公式引擎更快,因為它處理簡單的請求。如果您的 DAX 查詢很簡單並且需要 、 或,則存儲引擎可以自行完成所有工作。
另一方面,公式引擎可以處理複雜的 DAX 函數。請記住,查詢越複雜,表達式中的公式引擎就越多。
兩個引擎使用的數據也不同。公式引擎使用存儲引擎未壓縮的數據緩存,佔用大量內存和時間,而存儲引擎使用壓縮數據。
存儲引擎速度很快,因為它一次使用多個內核。這意味著它是一個多線程引擎。如果您的表有段,它會根據您擁有的核心數來掃描它們。然而,公式引擎一次只能做一個核心。
存儲引擎的另一個重要功能是當您的度量產生答案時,它會將答案存儲在內存中,這與公式引擎不同。如果詢問相同的問題,它會在不運行完整計算的情況下為您提供答案。
存儲引擎針對速度進行了優化,而公式引擎針對複雜性進行了優化。
DAX計算背後
了解 DAX 性能背後的過程的唯一方法是通過 DAX Studio。這是 DAX Studio 中的示例文件。
如果您按 F5 並運行它,您將得到結果。
要了解計算背後的兩個引擎發生了什麼,請打開 Server Timings 和 Query Plan。然後再次運行 DAX。
完成後,轉到“服務器計時”選項卡。
您可以看到查詢、公式引擎和存儲引擎的總執行時間。您還將看到運行了多少存儲引擎。公式引擎佔整個查詢的83.3%,而存儲引擎只佔16.7%。
如果轉到查詢計劃選項卡,您將看到物理查詢和邏輯查詢計劃。這些都是關於公式引擎正在做什麼的公式查詢。
LuckyTemplates 中的 DAX 計算:最佳實踐通過LuckyTemplates 中的
這一新課程度量優化 DAX 函數:優化技巧和技術
結論
公式和存儲引擎在從 DAX 代碼生成結果方面都發揮著重要作用。它們是 DAX 查詢結構中最重要的部分。
我希望您了解了這些引擎在 DAX 性能背後的工作原理,以及它們如何影響您的報告。
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的