Better performance/best practice in DQ - added flags in fact table vs multiple filters in CALCULATE


the case is as follows:

  • I have the facts that are binary in nature but aren’t to be aggregated directly (due to business rules, as they are the same in granularity but different in interpretation) and in DAX they need to be put as not a very complex, but still robust set of CALCULATE modifiers (several direct filters + some summing of columns, maybe even using iterator with RELATED sometimes)

so I have two options:

  1. go with a classic CALCULATE( aggregation, modifier1, modifier2, … )

  2. or to generate flag columns during import, that will reduce the DAX from the above example into SUM(single column) - or worst case scenario CALCULATE( aggregation, flag = something)

I expect to generate a set of up to 5 flag columns with 0/1/NULL

I estimate the fact table to grow into 100 million rows within a year

what will be a better performing option here using Direct Query mode?

Hi @fisz, I noticed you didn’t provide a PBIX file. Providing one will help users and experts find a solution to your inquiry faster and better.

A perfect initial question includes all of the following:

  • A clear explanation of the problem you are experiencing
  • A mockup of the results you want to achieve
  • Your current work-in-progress PBIX file
  • Your underlying data file (to allow us to go into Power Query if necessary to transform your data and/or data model – often DAX questions really end up being data modeling solutions)

Check out this thread on Tools and Techniques for Providing PBIX Files with Your Forum Questions

Not completing your data may sometimes cause delay in getting an answer.

Hi @fisz, we’ve noticed that no response has been received from you since May 2nd. We are waiting for the masked demo pbix file, images of the entire scenario you are dealing with, screenshot of the data model, details of how you want to visualize a result, and any other supporting links and details. In case there won’t be any activity on it in the next few days, we’ll be tagging this post as Solved.