Tune report performance

Completed

When you've finished creating your report, you should give consideration to its performance. Performance relates to how quickly visualizations on the report page can load. You should test your report in the Power BI service to see how it works from the perspective of the user. If you experience poor performance, or if report users have reported issues, you should investigate the cause of those issues and take steps to tune the report for more optimized performance.

Analyze performance

To investigate the cause of poor performance, your first step is to use Performance Analyzer. Performance Analyzer is built-in to Power BI Desktop. It allows you to examine how each of your report elements, such as visuals and DAX formulas, perform. It provides you with logs that measure (in time duration) how each of your report elements performs when users interact with them. By examining the durations in the logs, you can identify which report elements are the most (or least) resource intensive. You might also discover where bottlenecks exist, which is a good starting point for making design improvements.

Before you run Performance Analyzer, ensure that you clear the visual cache and data engine cache; otherwise, the results might not be accurate. Also, you should set up the report so that it opens on an empty page.

When you've cleared the cache and opened the report, go to the View ribbon tab, select Performance analyzer, and then in the Performance analyzer pane, select Start recording.

Screenshot of the Performance analyzer button on the View ribbon tab.

Interact with your report as you would expect a user to. The results of your interactions will display in the Performance analyzer pane as you work. When you're finished, select the Stop button. Then, it's time to analyze the results. The performance results of each element displays in milliseconds in the Duration column.

The following image shows that all elements on the report take less than two seconds to load, which in this instance is considered acceptable. You can expand any element in the list to view more detailed information and to identify the exact cause of an issue, such as the DAX query, the visual display, or something else.

Screenshot of the Performance analyzer results.

If you want to examine a particular DAX query, select Copy query and then paste it into a tool like DAX Studio to conduct further analysis. DAX Studio is a free, open-source tool that you can download and install on your computer.

Tune performance

The results of your analysis can inform you of areas for improvement and highlight items that you need to optimize.

A common reason for poor performance is that there too many visuals on the page. The following image shows an example of a busy page that possibly contains too many visuals.

Screenshot of too many visuals on a report page.

If you identify that visuals are a bottleneck, consider taking the following steps to tune the report:

  • Reduce the number of visuals on the report page because fewer visuals means better load performance. If a visual isn't necessary and doesn't add value to the user, you should remove it. Rather than using multiple visuals on the page, consider other ways to show details, like drillthrough pages and tooltips.
  • Reduce the number of fields in visuals. Identify fields that aren't valuable and then remove them.

If you find that the visuals aren't the reason for performance issues, you should investigate whether the DAX queries are the cause of poor performance. For example, you might need to investigate the design of the semantic model, or the DAX logic contained in measures.

In circumstances where you've made necessary changes to tune report performance and have established that the report is performing well, yet some users still experience poor performance, external factors might be affecting performance. External factors can include network bandwidth, server, firewall, and other external, uncontrollable factors. You might also need to meet with your IT department to determine whether they can explain why users are experiencing poor performance when using your reports.