DAX Studio 中的 VertiPaq 分析器 | LuckyTemplates 教程

DAX Studio 中的 VertiPaq 分析器 | LuckyTemplates 教程

本教程將展示DAX Studio中的 VertiPaq 分析器指標及其如何幫助優化您的 DAX 代碼。將討論每個指標,以便您了解每個指標如何幫助提高代碼的性能。

這是 VertiPaq 分析器指標。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

目錄

VertiPaq 分析儀的表格選項卡

第一個指標是“表格”選項卡或“整體表格視圖”。在此選項卡中,您可以看到基數 列。它指的是表中唯一值的數量。它是數據模型和DAX 查詢中最重要的列。

如果您查看DimCustomer表,就會發現有 20 個唯一值。這意味著有 20 個具有非重複值的獨立客戶。

這是一個示例 DAX 查詢。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

它使用 函數來計算各種表的行數。行數對應於表中生成的基數。

數據大小列

Cardinality之後的下一列 稱為Table。它顯示了表格佔用了多少內存。數據量越大,需要的注意力就越多。Col Size列是DataDictionaryHierarchy Size列 的總和。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

Data 、DictionaryHierarchy Size列分別顯示壓縮數據、字典編碼列和自動生成的層次結構列的總大小

接下來是編碼 列,顯示使用的編碼類型。Value 和Hash  Encoding 出現在所有表中,這就是結果顯示“Many”的原因。

Referential Integrity Violations 也將顯示在RI Violations列中。當一個值存在於Fact表中但不存在於Dimension表中時,就會發生違規。

User Hierarchy Size 列顯示用戶定義的層次結構的大小。基於一對多設置的多方關係的大小也將顯示在“關係大小”列中。

接下來,您有%DB列。此列顯示一個表佔所有表總大小的百分比。

在該示例中,您可以看到DimCustomer表幾乎佔據了總表大小的 66%。數據庫與事實表的百分比 應大於維度 表。

這些是百分比:

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

由於此示例沒有大量數據,因此 無法使用Segments 和Partitions列;它只適用於較大的表。

選項卡中的最後一列稱為Columns。它只是顯示表格中的列數。數據類型% 表列不適用於整體表視圖。

FactSales 表內部

這是 Overall FactSales 數據表。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

表中的每一列都有自己的信息。例如,總體表級別具有各種列,例如CardinalityColumn Size等。

在示例中,您會注意到SalesKey的基數等於表的基數。這是因為 SalesKey沒有重複值並且是唯一值。

Column Size列與 Table 級別同等重要。它顯示DataDictionaryHierarchy Size列的總和。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

您還可以看到使用的編碼方法是Hash Encoding,它創建了一個不同的值列表。

如果您查看Quantity行,您會發現它使用哈希編碼方法,即使數據類型是整數也是如此。

這樣做的原因是 SQL Server Analysis Services 設置了一種確定最佳壓縮方法的方法。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

% Table列將該列顯示為總表大小的百分比。在示例中,SalesKey具有最大的表大小,這是有道理的,因為它具有最高的基數和列大小。

同樣,% Database 列顯示表或表中的列佔整個數據庫的百分比。

您會看到FactSales表佔數據模型總大小的 46.8%。FactSales表中的SalesKey列佔數據庫總大小的 15%

由於此示例只有少量數據,因此您將只有一個段和一個分區。Columns列也是如此。在列視圖中,列數將始終為一。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

VertiPaq 分析儀的列選項卡

“列”選項卡 具有更易於查看數據的格式。它提供比表選項卡更詳細的信息。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

您會注意到它具有與“表格”選項 卡相似的列。

“列”選項卡允許您對任何列進行排序。在此示例中,它按基數排序,基數用小三角形表示。行列顯示表格 中有多少行。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

您可以看到FactSales-SalesKey 有 15,000 行和基數。所有主鍵都有與其對應的基數相等的行。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

如果行數不等於基數,則該表將具有重複值。

如果查看FactSales-CustomerKey,您會注意到它的基數為 801,列大小接近 110 萬。

這意味著它需要被優化和壓縮。要對其進行優化,請轉到 LuckyTemplates 文件並打開DimCustomer 表。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

CustomerKey列是字符串類型的數據您可以看到值以 C 開頭,然後是數字。單擊替換值以更改列內的值。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

找到值 C 並將其更改為空白。接下來,將數據類型更改為整數。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

對Fact表 中的CustomerKey列執行相同的操作 。單擊 Apply 並返回到 DAX Studio。接下來,單擊查看指標以重新加載 DAX,然後按基數對其進行排序。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

列大小現在從 110 萬減少到 46,372。如果您查看表視圖,您會看到列大小也已降至 46,372。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

如果對列大小接近 110 萬的 SalesPersonKey 執行相同的操作,則可以將其減少到 5,540。

DAX Studio 中的 VertiPaq 分析器 |  LuckyTemplates 教程

將字符串或文本類型的值更改為整數類型可以優化您的 DAX,使其性能更好。


通過這門新課程優化 DAX 函數
簡單的 LuckyTemplates 轉換以獲得更優化的數據
使用高級 DAX 優化 LuckyTemplates 公式

結論

DAX 優化在 VertiPaq Analyzer 的幫助下從 DAX Studio 開始。在分析器指標中,您將看到表和列的工作原理,並確定哪個實體需要進一步優化和改進。

如果您想找出代碼的哪一部分降低了代碼的性能,請使用 VertiPaq Analyzer。它肯定會讓你的 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 用戶最初應該了解的主要主題之一。