SSAS Tabular as Analytical Engine


This article describes pros and cons of using SQL Server Analysis Services Tabular as the analytical engine in a service or application, based on the experience of companies who have adopted it.

DIVIDE Performance

DIVIDE Performance 01

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.

Rolling 12 Months Average in DAX

Rolling Average 12 Months 01

Computing the rolling 12-month average in DAX looks like a simple task, but it hides some complexity. This article explains how to write the best formula avoiding common pitfalls using time intelligence functions.


Using Tabular Models in a Large-scale Commercial Solution


Analysis Services Tabular can be used in large-scale solutions and SQLBI already helped several companies in the challenging effort of defining a reliable and scalable architecture, designing the right data model and optimizing the queries. One of these stories is now a case study published as a Microsoft White Paper.

Check Empty Table Condition with DAX

In DAX there are different ways to test whether a table is empty. This test can be used in complex DAX expressions and this short article briefly discuss what are the suggested approaches from a performance perspective.

FILTER vs CALCULATETABLE: optimization using cardinality estimation

A common best practice is to use CALCULATETABLE instead of FILTER for performance reason. This article explore the reasons of that and explain when FILTER might be better than CALCULATETABLE.

Last Process Date in SSAS Tabular

How do you get the last process date for an SSAS Tabular Database? This article shows the techniques you can use and explains how to interpret the information available.

Natural Hierarchies in Power Pivot and Tabular


Creating a hierarchy in a Power Pivot or Tabular data model is very easy, but you might experience performance issues if the hierarchy is not “natural”. This article explains how to create hierarchies avoiding these problems.


Understanding Distinct Count in DAX Query Plans


Distinct Count calculations in DAX are very fast compared to other engines. But when you have a large number of values, performance might be different depending on the query you write. This paper investigates different techniques that produce the same result with different performance, showing that you need to make

Semi-Additive Measures in DAX


Values such as inventory and balance account, usually calculated from a snapshot table, require the use of semi-additive measures. In Multidimensional you have specific aggregation types, like LastChild and LastNonEmpty. In PowerPivot and Tabular you use DAX, which is flexible enough to implement any calculation, as described in this article.