Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
One of my customers has a data platform where they have a large number of fact and dimension tables with huge amounts of data. They are struggling with developing reports in Power BI desktop, as performance is dramatic and it often freezes.
Question is, what kind of best practices are there when it comes to developing reports and what are they doing right and what are they doing wrong:
At other companies, do they perhaps create per use case a specific view or dataset that is limited for that purpose only, so that Power BI only gets what is needed for that use case? Meaning all aggregation and such is done prior to doing visualization in Power BI? or are there other best practices to consider?
Solved! Go to Solution.
Hi @Maerkus
Optimize Data Model: Streamline the data model by removing unnecessary columns, combining tables where possible, and ensuring that the model is as simple and flat as possible. This can improve both the performance and the ease of use in report development.
Use Aggregated Tables: For large datasets, consider creating aggregated tables that summarize the data at a higher level. Power BI can automatically use these tables for visuals that don't require the detail level, improving performance.
Incremental Data Loading: If using Import mode in some scenarios, consider implementing incremental data refreshes to reduce the volume of data loaded and processed during each refresh.
Optimize DirectQuery: When using DirectQuery, it's crucial to optimize the source database for the queries Power BI will execute. This might involve creating indexes, optimizing query performance in the database, and minimizing the complexity of DAX queries that translate into complex SQL queries.
Avoid Bi-directional Relationships: Unless absolutely necessary, avoid bi-directional relationships as they can cause performance issues and model complexity. Stick to single-direction relationships.
Best Regards,
Jayleny
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @Maerkus
Optimize Data Model: Streamline the data model by removing unnecessary columns, combining tables where possible, and ensuring that the model is as simple and flat as possible. This can improve both the performance and the ease of use in report development.
Use Aggregated Tables: For large datasets, consider creating aggregated tables that summarize the data at a higher level. Power BI can automatically use these tables for visuals that don't require the detail level, improving performance.
Incremental Data Loading: If using Import mode in some scenarios, consider implementing incremental data refreshes to reduce the volume of data loaded and processed during each refresh.
Optimize DirectQuery: When using DirectQuery, it's crucial to optimize the source database for the queries Power BI will execute. This might involve creating indexes, optimizing query performance in the database, and minimizing the complexity of DAX queries that translate into complex SQL queries.
Avoid Bi-directional Relationships: Unless absolutely necessary, avoid bi-directional relationships as they can cause performance issues and model complexity. Stick to single-direction relationships.
Best Regards,
Jayleny
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Thank you for all your suggestions everyone, I will look into it further, but this answer confirms my thoughts and gives me some new ideas.
For performance, they shouldn't be brining in tables (or columns) that are not used in the report. It seems counter intuitive because "what if I want to see it this way?" always comes up. But, you need to design it for performance as well! For instance if you are designing a shoe and want it to be fast, you wouldn't include built-in snow shoes in case it might snow... If the use case calls for a fast snow shoe, just redesign (be sure to emphesize this isn't always easy!).