Power BI Report and Dataset Performance Optimization
For any organization developing Power BI reports, there is a strong desire to design them in a way that provides the best end-user experience. It includes not only providing excellent data visualization in reporting but also creating Reports and Dashboards for optimal performance. Optimization in the Power BI models means looking to deliver the best possible experience to users.
This Blogpost gives the ideas to developers and administrators
to develop and maintain their optimized solutions for Power BI. You can do
Power BI optimization at different structural layers, which includes
●
Data Model
○
External models (live connections):
▪ Azure Analysis Services
▪ SQL Server Analysis Services (via a gateway to on-premise).
○
Internal models (Dataset modes hosted in Power BI service):
▪ Import model
▪ DirectQuery model
▪ Composite model (in preview)
●
Visualization rendering (Power
Bi Reports and Dashboards)
●
Data Refresh
●
The Power BI environment,
including capacities, data gateways, Report Server, Power BI Services, and the
network
Fig: Power BI Desktop Model
Data Model optimization: -
The data model supports the entire visualization experience.
Data models external-hosted, internal-hosted, and in Power BI, they are
referred to as datasets. It's
essential to understand your options and to choose the appropriate dataset type
for your solution.
Below are the points that need to consider for power BI dataset
●
Always try to avoid loading
unnecessary data into the model
●
Use necessary columns and column
types in data mode
●
Use Vertipaq Analyzer to see report dataset object storage, to know
where data reduction is required
●
Disable Auto-date time
functionality for models, because it creates column hierarchy and that
increases unnecessary data size.
●
Use composite data models (Mix
mode) and disable power query load
●
Prefer to costume columns and measure
instead of getting from the source.
Data reduction can boost the performance well because keeping only relevant data in the model reduces disk space and memory utilization.
Visualizations
loading and optimization performance: -
Visualizations
can be Power BI reports, dashboards. Each has different architectures and their
administration. Power BI is a popular tool to
create dashboards and reports from your data.
Dashboard: -
The drag and drop interface makes it quick and easy to build a
simple dashboard from scratch. However, once things get more complicated when
you keep adding widgets, your dashboard’s speed might get reduced.
It's essential to understand that Power BI maintains a cache for
your dashboard tiles except for living report tiles and streaming tiles.
○
Pin reports which are highly
requested by business
○
Use default power bi reports in
the dashboard.
○
Visuals with a direct query and the live connection must be optimized
Report: -
Power BI Desktop has many visualizations to represent data in its best form to make an insightful report for business. But visualization must represent the data in its optimal way, so visual rendering time must be optimal.
○
Use reports which are part of
default visuals
○
Limit number of the report on
the page
○
Restrict data in visuals with
appropriate filters, because more the data slower the visuals
○
Optimize the custom visual
performance with the Performance
Analyzer
Power BI Environment optimization: -
Power BI report and dashboards are hosted in power bi Services
and Power BI report server(on-premises) where business users can access the
developed reports and dashboards. So optimization of the environment also plays
an important role.
●
Power BI Capacity: Power BI
service online uses cloud resources to compute Dax and Visualizations. The
resource provided by Microsoft depends and the license taken. if the current
license does not full the requirement then consider upgrading the license and
that will upgrade resource capacity
●
Data Refresh: Data refresh in power bi services depends on
the source database and resource of the server. If Data refresh is the time taken,
then optimization is required on source query or data model in power.
○
All source query should be
performed better
○
Fetch only required columns in
model
○
Use appropriate data type in the
model
○
Use auto Datetime hierarchy if
only required or best practice is to use a date table in the model.
●
Data
Gateway: Power
BI service uses data gateway when data is not available online and resides
on-premises. Data gateway resources must be set as the load and less frequent
dataset refresh should be scheduled to data refresh.
Also below point to be considered:
○
Number of concurrent data refresh should be
less
○
Number of Concurrent Users for the live
connections should be considered
○
Ensure low network latency is there, also use
Azure speed test to find out any issue with latency
○
Use Azure
Expressroute for secure connection
○
Use optimized modelling and incremental data
refresh, so less data needs to be transferred over the network
○
Limit Auto page refresh and use composite data
model for small datasets
What Next? : -
It is always better to make a habit of creating performance
proficient reports and visualization for business, which can be refreshed and
interact with low latency. Above mentioned tips can help us to develop an
optimal reporting solution.
There are tools provided from the Microsoft side to optimize and
analyze the issue with report rendering and dataset refresh. Azure test Speed for analyzing network
latency, Performance Analyzer to
examine report rendering in Power BI desktop, DAX studio to debug Dax related issues and Vertipaq Analyzer to see report dataset storage in the model.
Reference:
●
https://docs.microsoft.com/en-us/power-bi/guidance/power-bi-optimizatio
●
https://docs.microsoft.com/en-us/power-bi/guidance/import-modeling-data-reduction
●
https://docs.microsoft.com/en-us/power-bi/guidance/gateway-onprem-sizing
●
https://docs.microsoft.com/en-us/power-bi/create-reports/desktop-performance-analyzer
●
https://www.sqlbi.com/articles/data-model-size-with-vertipaq-analyzer/
Comments
Post a Comment