Topic: VertiPaq
Formula engine and storage engine in DAX
This article explains the roles of the formula engine and of the storage engine used to execute DAX queries. Read more
Storage differences between calculated columns and calculated tables
This article compares the differences between calculated columns and calculated tables from a processing and storage point of view. Read more
Measuring the dictionary size of a column correctly
This article explains how to correctly measure the dictionary size of a column in a model created in Power BI, Power Pivot, or Analysis Services Tabular. Read more

Optimizing DAX expressions involving multiple measures
Writing measures referencing other measures is in general a good idea that simplifies the DAX code, but you might face specific bottlenecks. This article describes which performance issues might arise when different measures aggregate the same column using different filter… Read more

Optimizing Hardware Settings for Analysis Services Tabular
Hardware and virtualization settings have a big impact on Analysis Services Tabular performance. This article describes best practices for the most important settings to check. Read more

Costs of Relationships in DAX
The relationships in a data model queried by DAX are a fundamental part of the engine and simplify the query itself. This article examines the cost of relationships in a data model, providing hints to optimize them. Read more

Data Model Size with VertiPaq Analyzer
Analyzing table and column size is an important step in optimizing a data model for Power Pivot, Power BI, or Analysis Services Tabular. This article describes VertiPaq Analyzer, an Excel workbook to analyze detailed information extracted from Dynamic Management Views. Read more
Choosing the Right Hardware for Analysis Services Tabular
Choosing the right hardware is critical for a solution based on Analysis Services Tabular. Spending more does not always mean having a better machine. This short article describes how to choose the right server and, as you will see, the… Read more

Heap Memory Settings for Analysis Services Tabular 2012 / 2014
The default memory settings for Analysis Services Tabular might be less than optimal. This article describes why this might happen, and guides you choosing the right configuration. Read more

DIVIDE Performance
The DIVIDE function in DAX is usually faster to avoid division-by-zero errors than the simple division operator. However, there are exceptions to this rule, described in this article through a simple performance analysis. Read more