數據緩存:它是什麼以及它如何幫助優化查詢

數據緩存:它是什麼以及它如何幫助優化查詢

在本教程中,您將了解什麼是數據緩存及其重要性。數據緩存存儲可能對未來使用有價值的數據位。

如果您在未來的措施或行動中需要相同的信息,數據緩存將提供您需要的信息。它消除了讓系統再次獲取相同的數據集。

在本教程中,您將了解在 LuckyTemplates 中處理數據緩存時要記住的八個重要事項:

數據緩存:它是什麼以及它如何幫助優化查詢

目錄

數據緩存的定義和目的

數據緩存:它是什麼以及它如何幫助優化查詢

數據緩存是存儲引擎在內存中創建的臨時表。這個臨時表被發送到公式引擎,然後迭代這個信息並在查詢後執行不同的操作。

數據緩存:它是什麼以及它如何幫助優化查詢

公式引擎和存儲引擎之間的所有通信總是以數據緩存的形式發生。公式引擎準備查詢計劃,然後將指令發送到存儲引擎。然後存儲引擎將其發送回公式引擎,公式引擎將結果返回給用戶。

數據緩存:它是什麼以及它如何幫助優化查詢

由於公式引擎無法直接訪問存儲在 DirectQuery 和 VertiPaq 中的數據,因此它依賴於數據緩存的存儲引擎。

數據緩存:它是什麼以及它如何幫助優化查詢

存儲引擎發送的數據緩存是未壓縮的格式。這意味著可以減少 Vertipaq 工具中存儲的數據大小。

但是當需要將數據緩存返回給公式引擎時,它無法壓縮,因為公式引擎不適用於壓縮數據集。

什麼是數據緩存對 RAM 的影響

數據緩存:它是什麼以及它如何幫助優化查詢

如果存儲引擎發送大量數據緩存,這將佔用軟件 RAM 的大量空間。它還將消耗大量時間讓公式引擎執行迭代並產生結果。

因此,當您編寫 DAX 代碼時,您需要了解它應該以最小化數據緩存中的行的方式編寫。

最好的情況是將視覺對像中顯示的行數與數據緩存中返回的行數相匹配。

大多數時候,很難返回相同數量的行。如果發生這種情況,您將需要檢查您的 DAX 代碼並以優化存儲引擎生成的數據緩存的方式對其進行分解。

數據緩存如何優化查詢

未優化的功能

數據緩存:它是什麼以及它如何幫助優化查詢

DAX 語言中的一些函數並未針對存儲引擎進行優化。為了更好地理解這一點,讓我們看一個例子。

例如,在您的代碼中,您可以使用函數代替 SUMMARIZE。SUMMARIZE 和 GROUPBY 函數執行相同的操作。但是,根據場景的不同,存在顯著差異。

GROUPBY 函數未針對存儲引擎進行優化。如果您對具有 1200 萬行的事實表使用 GROUPBY 函數,它將產生具有相同行數的數據緩存。這可以大到 600mb 到 1gb。

這個大小會給您的 RAM 帶來很大壓力。因此,不要使用 GROUPBY,而是使用。SUMMARIZE 函數導致更小的數據高速緩存大小。您可以將它與 GROUPBY 作為頂級函數配對。

減少重複

當您編寫 DAX 度量值或查詢時,您需要確保在後台生成的代碼適用於存儲引擎。

數據緩存:它是什麼以及它如何幫助優化查詢

您需要以生成也可用於後續查詢的數據緩存的方式編寫 DAX 代碼。這樣做的好處是,存儲引擎將檢查是否已收到類似的查詢,而不是使用VertiPaq執行單獨的掃描。

如果這是真的,那麼就意味著它的數據緩存在內存中可用。因此,VertiPaq 不會再次掃描查詢,而是簡單地將其從緩存內存返回到公式引擎。

數據緩存:它是什麼以及它如何幫助優化查詢

如果您在存儲引擎查詢中看到CALLBACKDATAID 運算符,則意味著無法緩存這些查詢。如果類似的查詢被發送到存儲引擎,它將執行重複。

因此,VertiPaq 將不得不調用公式引擎來解決查詢。這會增加整體執行時間,因為在這種情況下無法使用高速緩存。

結論

數據緩存是您在 DAX 語言中最好的朋友。請記住以最大化存儲空間並減少 VertiPaq 工具迭代次數的方式編寫 DAX 代碼。您可以重用存儲引擎已經生成的數據緩存,以減少查詢執行時間。


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的