Limit the visuals in dashboards and reports
Limit the visuals in reports & dashboard.
Keep the tiles limited to no more than 10 per dashboard.

Remove unnecessary interactions between visuals
We can make that possible by removing unnecessary interactions between visuals. This is possible because of the reason that all visuals on a report can interact with one another by default. The interactivity should be controlled and modified for optimal performance.
Further, We can reduce the number of queries fired at the backend and improve report performance by disabling unwanted interactivity.

Enable Row-Level Security (RLS)
Power BI only imports the data that the user is authorized to view, with RLS that restricts user access to certain rows in a database depending on the characteristics of the user executing a query.
But how to attain substantial performance gains? We can enable this by combining Power BI roles with roles in the backend. Moreover, We need to test all roles prior to rolling out to production.

Use Microsoft AppSource certified custom visuals
The Power BI certified custom visuals are verified by Microsoft to have robust as well as well-performing code. These AppSource visuals have passed rigorous quality testing and are the only custom visuals that can be viewed in Export to PowerPoint and email subscriptions.

Avoid using hierarchical filters
Yes, that’s what we need to do when we observe poor performance in Power BI. Are we getting bothered by high page load times while using hierarchical filters? Try this! Remove the hierarchical filters. Experience an enhanced performance in Power BI by using multiple filters for the hierarchy.

Use the On-premises data gateway
It is suggestible as well as one of the best practices to use on-premises data gateway instead of Personal Gateway for it takes data and imports it into Power BI. But why Enterprise Gateway? It is more efficient while we work with large databases as Enterprise Gateway imports nothing.

Use separate Power BI gateways for “Direct Query” and “Scheduled Refresh”
As we know that using the same gateway for Scheduled Data Refresh and Live Connection slows down the Live Connection performance when the Scheduled Data Refresh is active. It is suggestible for we to create separate gateways for Live Connection and Scheduled Refresh to avoid such issues.

Test each custom visual on a report for ensuring fast report load time
Ensure fast report load time by testing each custom visual on a report for performance.

Limit complicated measures and aggregations in data models
Increase the likelihood of improved performance by pushing calculated columns and measures closer to the source wherever possible. Moreover, We need to create calculated measures instead of calculated columns while using star schema in order to design data models.

Import what’s necessary
Why do we need to import entire datasets, when we can keep the model as narrow and lean as possible by importing only necessary fields. Power BI works on columnar indexes where longer and leaner are preferred.

To conclude
The above are the 10 best practices that we can add in our toolkit for Power BI reporting as well as analysis.
On a concluding note, wish you all the best for your successful Power BI developments with these best practices by your side!