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

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

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

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

在本教程中,您將了解在 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 代碼。您可以重用存儲引擎已經生成的數據緩存,以減少查詢執行時間。


在 Power Automate 中執行直到循環控制

在 Power Automate 中執行直到循環控制

了解有關 Do Until 循環控制如何在 Power Automate 流中工作的基礎過程,並熟悉所需的變量。

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

受限於 LuckyTemplates 中提供的標準視覺效果?學習使用 Deneb 和 Vega-Lite 為 LuckyTemplates 創建自定義視覺對象,提升您的數據可視化能力。

在 Power Automate Desktop 中將日期添加到文件名

在 Power Automate Desktop 中將日期添加到文件名

在此博客中,您將了解如何使用 Power Automate Desktop 自動將日期添加到文件名的開頭或結尾。

Power Query:如何快速添加註釋

Power Query:如何快速添加註釋

找出幾種不同的方法在 Power Query 中添加註釋,這對於不喜歡記筆記的人非常有幫助。

Power Apps – SharePoint 集成指南

Power Apps – SharePoint 集成指南

在此博客中,您將了解 MS Power Apps 界面的基礎知識並了解 Power Apps-SharePoint 集成的過程。

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

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

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

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

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

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

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

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

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

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

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

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

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

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