Which choices affect performance?
While there are many aspects of each individual Power BI component that can be optimized for performance, the following list is a good summary that can serve as a checklist for every solution:
- Inappropriate use of DirectQuery/Import: Decisions here balance model size and refresh time with data freshness and report interactivity.
- Power Query design: Decisions here may fail to leverage the data source's native capabilities and therefore also fail to avoid additional work in the mashup engine.
- Data modeling: Decisions here may make the data model unnecessarily large, waste memory, consume more computing resources, and affect usability.
- Inefficient DAX calculations: Decisions here may fail to leverage the highly efficient internal VertiPaq Storage Engine and force operations in the Formula Engine.
- Complex or inefficient row-level security: Decisions here may create intensive calculations to resolve which rows the user can see.
- Poorly designed reports: Decisions here can put too much load on the user's device.
- Data source or network latency: Decisions here may place the data far away from the user.
Now that you have learned about the high-level areas of a solution that we need to consider to fully optimize performance, let's summarize the key learnings from this chapter.