Power BI Best Practices

This guide covers the best practices you need to improve your Power BI performance, security, and design. As a Microsoft Fabric Featured Partner and the 2021 Power BI Partner of the Year, we have proven expertise in Power BI migration and optimization.

Last updated: December 10, 2025

Performance

1. Limit the number of visuals in dashboards and reports

Using too many visuals slows report performance as each visual requires data processing and rendering. Limit widget visuals to eight per report page, grids to one per page, and tiles to 10 per dashboard. Consider Power BI's new card visual, which displays multiple cards within a single container — consolidating information into a single query.

2. Use the on-premises data gateway in standard mode (not personal mode)

Personal mode imports data into Power BI, which can cause resource limitations and performance issues with large databases. Standard mode keeps data in its original location, minimizing duplication, reducing memory usage, and avoiding bottlenecks.

3. Use separate gateways for live connection and scheduled refresh

Sharing one gateway for DirectQuery live connections and scheduled refresh can overload it during refreshes and slow live connections. Separate gateways let each workload run efficiently without affecting the other.

4. Use calculated measures and filters for complex aggregations

Calculated measures evaluated at query time are more efficient than calculated columns for complex aggregations. Pair them with filters to keep query performance predictable.

5. Push calculations to the source

Offloading processing to the source optimizes query execution. Calculations evaluated closer to the data are generally faster than running them inside Power BI.

6. Use a star schema instead of snowflake when possible

Star schemas are simpler and more denormalized than snowflake schemas. They reduce required joins, accelerate query execution, simplify report development, and ease maintenance.

7. Use slicers sparingly

Each slicer fires two queries (data and selection details). Too many slicers drastically slow performance. Use the Filter pane to evaluate and remove unnecessary slicers.

8. Host reports and data sources in the same region

Hosting the Power BI tenant and data source in the same region minimizes network latency and speeds up data transfer, query execution, and report rendering.

9. Partition data and process multiple partitions in parallel for large semantic models

Partitioning splits large tables into smaller subsets based on specific criteria. Power BI uses columnar indexes, so longer, leaner tables perform better. Importing only the necessary fields and tables improves loading efficiency and reduces resource consumption.

10. Use calculation groups to reduce redundant measures

Calculation groups let you define calculations (like time intelligence) once and apply them to multiple measures, reducing measure count and simplifying maintenance.

11. Use templates (.PBIT files) instead of starting with an empty .PBIX

Templates enable standardized, branded reports faster. They save custom color palettes and themes, auto-connect to commonly used data sources, and ship with common DAX measures.

12. Use query reduction settings

Add an Apply button to slicers and the filter pane so changes only fire queries when the user clicks Apply. This reduces the number of queries triggered, especially in complex reports.

13. Avoid bi-directional and many-to-many relationships against high-cardinality columns

These relationships significantly impact performance due to increased data processing and query complexity. Avoiding them on high-cardinality columns reduces resource consumption and speeds up rendering.

14. Avoid floating-point data types

Float and double can introduce round-off errors and require more processing power. Avoiding them improves accuracy and report efficiency.

15. Replace the auto-generated date table with a custom date table

Auto-generated date tables create a separate table for each date column, bloating the model. A single custom date table (with date and time split for better compression) streamlines the model and enables more efficient time intelligence.

16. Set IsAvailableInMdx to false on non-attribute columns

Disabling attribute hierarchy for non-attribute columns (like measures) streamlines the data model, reducing size and load time.

17. Reduce the amount of data loaded on the page

Use bookmarks, drillthrough pages, and tooltips to reduce data loaded at once. This improves page load times — especially on landing pages where quick access matters most.

18. Use report backgrounds for static images

Background images use fewer resources than rendering multiple individual visuals for the same effect.

19. Choose the ideal storage mode for tables

Choose Import, DirectQuery, or Dual based on data aggregation needs and visualization requirements. The storage mode directly affects responsiveness and efficiency.

20. Cross-check referential integrity for relationships

In DirectQuery sources with enforced primary keys, verify the Assume Referential Integrity setting. If Off, Power BI defaults to slower outer joins instead of inner joins.

Security

1. Enable and optimize Row-Level Security (RLS)

RLS limits data access based on user roles, so Power BI only imports data the user is authorized to view. Keep RLS logic simple and push complex calculations to the source to reduce the computational load on Power BI.

2. Use Power BI-certified custom visuals

Certified visuals have passed rigorous quality testing and are the only custom visuals that work in Export to PowerPoint mode and email subscriptions. Microsoft verifies their performance and robustness.

3. Categorize report data by business impact using sensitivity labels

Sensitivity labels (High, Medium, Low Business Impact) raise user awareness about data security. High-impact data requires a policy exception to be shared externally, helping enforce appropriate handling of sensitive information.

Design

1. Align cache update frequency with data source refresh

Power BI's default cache update frequency is one hour. Synchronizing it with the source refresh frequency ensures data accuracy and avoids unnecessary processing.

2. Use white or light background colors

Light backgrounds make reports printer-friendly and easier to share both online and offline.

3. Shorten displayed numbers

Limit displayed numerals to four digits and decimals to two places. This improves readability and consistency, especially when scaling to thousands or millions.

4. Use tooltips for additional information

Tooltips add context in a compact form. Curate the visuals inside them so they help without overwhelming the user.

5. Use meaningful names for report objects

Use clear, business-friendly names for columns and measures, and hide unused columns to reduce user confusion.

6. Enable personalization of visuals

Turn on the Personalize visuals option when sharing reports. Combined with personal bookmarks, it empowers users and facilitates self-service BI.

7. Avoid visual/page scrolls and non-standard report sizes

Excessive scrolling disrupts analysis. Non-standard sizes display inconsistently across devices, producing poor responsiveness and a disjointed visual presentation.

8. Use drillthrough buttons instead of right-click navigation

Drillthrough buttons with context-driven conditional formatting offer a more intuitive way for users to explore data than right-click drillthrough.

9. Optimize visual interactions

Evaluate cross-filtering and cross-highlighting interactions. Remove the ones not relevant to your audience. For DirectQuery reports, use the Optimize Ribbon to tune interactivity.

10. Use field parameters for dynamic reporting

Field parameters let users switch the measure or dimension being analyzed inside a visual, reducing the need for duplicate visuals or bookmarks.

References

Want a Power BI performance, security, and design review on your tenant? MAQ Software's Power BI team can help.

Talk to our team
DAX Best Practice Guide

DAX Best Practice Guide

Improve your Power BI performance with our 22 DAX best practices.

Read More