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
v-anabat
Employee
Employee

How to design a better Power BI model with many tables?

Let's say if I have a model with snowflakes schema. An initial Table t1 which is connected to t2 and there are many tables which are connected to t2 (say t3,t4,t5,t6.......t25). Here t1 has higher level information, so mapping from t1 to t2 is 1 to many. Also from t2 to other tables relationship is 1 to many (and few cases bi-directional). Since we have too many tables(more than 20 which are joined on the same ID ) at t3 level, will it affect the performance of the model? So, is it better to have 2 tables of t2 so that we will have fewer number relations on the same ID and flow will be less?

 

Basically, my question here is if I have a table with more than 20 tables surrounding it, is it better to duplicate the surrounded table into 2 tables, and share the child tables for 2 tables for better performance.

sample image.PNG

1 ACCEPTED SOLUTION
v-frfei-msft
Community Support
Community Support

Hi @v-anabat ,

 

To optimize your model here are Some best practices:

  • Tables or columns that are unused should be removed if possible. 
  • Avoid distinct counts on fields with high cardinality – that is, millions of distinct values.  
  • Take steps to avoid fields with unnecessary precision and high cardinality. For example, you could split highly unique datetime values into separate columns – for example, month, year, date, etc. Or, where possible, use rounding on high-precision fields to decrease cardinality – (for example, 13.29889 -> 13.3).
  • Use integers instead of strings, where possible.
  • Be wary of DAX functions, which need to test every row in a table – for example, RANKX – in the worst case, these functions can exponentially increase run-time and memory requirements given linear increases in table size.

 

Regards,

Frank

Community Support Team _ Frank
If this post helps, then please consider Accept it as the solution to help the others find it more quickly.

View solution in original post

3 REPLIES 3
v-frfei-msft
Community Support
Community Support

Hi @v-anabat ,

 

To optimize your model here are Some best practices:

  • Tables or columns that are unused should be removed if possible. 
  • Avoid distinct counts on fields with high cardinality – that is, millions of distinct values.  
  • Take steps to avoid fields with unnecessary precision and high cardinality. For example, you could split highly unique datetime values into separate columns – for example, month, year, date, etc. Or, where possible, use rounding on high-precision fields to decrease cardinality – (for example, 13.29889 -> 13.3).
  • Use integers instead of strings, where possible.
  • Be wary of DAX functions, which need to test every row in a table – for example, RANKX – in the worst case, these functions can exponentially increase run-time and memory requirements given linear increases in table size.

 

Regards,

Frank

Community Support Team _ Frank
If this post helps, then please consider Accept it as the solution to help the others find it more quickly.

Hi @v-anabat ,

 

Does that make sense? If so, kindly mark my answer as the solution to close the case please. Thanks in advance.

 

Regards,
Frank

Community Support Team _ Frank
If this post helps, then please consider Accept it as the solution to help the others find it more quickly.
LivioLanzo
Solution Sage
Solution Sage

Hi @v-anabat 

 

yes, for performance reasons it is better that you apply the second logic you have outlines and create less relationships. This would also make your model much easier to use and maintain 

 


 


Did I answer your question correctly? Mark my answer as a solution!


Proud to be a Datanaut!  

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.