Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
dpetrancuri
Frequent Visitor

Bi-Di Relationship Impact on Model Memory Usage

Good Day Everyone:

 

I have a model where I have abused the hell out of Bi-Di relationships and now that I can visually filter slicers / etc by a measure (as recently illustrated by "The Italians" @marcorusso @AlbertoFerrari ), I will begin to unwind this mess.

But, in the meantime, I would really like to know how Bi-Di relationships affect model memory size / footprint / utilization and performance in general. My model is a true star-schema and is not large by any reasonable measurement, but it takes a long time to process and I recently bumped into the dreaded insufficient memory in the allocated (and I think it's probably as a result of my bi-di abuses) and I had to bump up my AAS instance to the next S level as a result.

I'm very resourceful and have searched exhaustively for this information or someone to comment definitively on this and have found nothing. Can someone please help?

 

Thank you for your attention and consideration.

 

With Gratitude,

 

SQLArchitect

 

P S 

 

Yes. obviously I have failed to head the advice of Marco and Alberto to eschew bi-di relationships to this point, and the reason why I have done so is I'm trying to build a BIaaS model for my employer that would allow clients to leverage the model in such a way as to not need much DAX expertise to develop rich visualizations with little to no DAX. I realize this design goal may be unattainable at this point.


2 REPLIES 2

You should not see an impact on processing performance, as long as you don't have very complex calculated columns that may be affected by bidi. On the query memory usage and/or speed, on the other hand, the impact can be quite devastating, but you know, the answer is always the same: it strongly depends on the measures you wrote.

 

You need to use DAX Studio and VertiPaq analyzer to gather this information, and then process them with your brain. Every model is unique, depending on data distribution, this is why you will find it really hard to gather "golden rules" from the web. Most of these, by the way, would be misleading. This is the reason we never provide rules of thumb, or simple directions. VertiPaq is a complex beast, you need to thoroughly study its internals to understand exactly what is happening.  Ths, by the way, is the reason I find it so fascinating to study 🙂

 

Alberto

Alberto Ferrari - SQLBI

Thank you for your insights, Marco.

I'm working to remove the bi-di relationships and also getting rid of primary keys from fact tables. These two items alone seem to be having significant performance improvements at relatively low cost in effort. The hardest part is giving up the power of the bi-di relationships from a simplified self-serve UX perspective if users want to build reports off a model that has bi-di it becomes much easier for them to do so than in one without. However, that being said, I've reached the point where I believe the trade-off of sacrificing bi-di to be worth it, especially if I can manage the usability issues from providing guidance on creating appropriate "fact table relationship" driven sync'd slicers as per the recent article you published on SQLBI.com

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.