Capacity units (CU) and performance issues explained

Security , Management


Capacity units (CU) and performance issues explained
Security , Management


What are Capacity Units?

Everything you do in Power BI costs Capacity Units (CU). There are two type of measurements. Type 1 ‘Interactive’ is measured every 30s, Type 2 ‘Background’ doesn’t take down a capacity when a lot op CUs are used, but it’s smoothed over time.


This means an overload takes place if one or multiple queries within this 30s interval go above the maximum CU’s of a Power BI Capacity.

A interactive action can have a few origins:

  • Query
    When you open or click in a report.
  • XMLA Read Operation
    When you call the XMLA Endpoint of a Semantic model
  • Render
    The visuals that are rendered.
  • Full Report Email Subscription
    When a report is sent as a PDF.

We have an interactive action limit of 30.000 CUs per hour.


Background actions are smoothed over time. For this we have a limit of 2.000.000 CUs per month.

  • Dataflow Refresh
    Every time a dataflow refreshes it will cost CUs.
  • Dataset On-Demand Refresh
    Every time the Semantic Model is refreshed through the Webdashboard Development API.
  • Dataset Scheduled Refresh
    Every time the Semantic Model is refreshed through the Power BI Services Schedule.

Performance insights

Webdashboard gives insights into your performance. You can find these insights here:

This report is made so you can easily see if you use too much capacity in the ‘My usage against Fair use policy’ visual. If the column is red (exceeding the policy), you can see which kind of operations are using the most in the ‘Global usage overview’ visual. But you want to identify your individual culprits, you can drill through on the ‘My Peak usage’ visual.

In this visual, you can first drill down to the lowest level (hours).

From here you can drill down and see an overview of all the semantic models and the operations performance on them.

Now you know exactly which dataset causes the high usage. If your problem isn’t caused at a specific hour, but for example, by queries done on a report during the day. You can utilize the ‘Usage per day’ visual.

Most common issues grouped by operation type

OperationPossible causePossible solution
QueryTable or Matrix with a lot of rowsVisualize the data and make it available as a matrix or table after a drill through
QueryTable or Matrix with a lot of measures in the Report ViewTry to move the measures to your model as calculated field
Dataset On-Demand RefreshA lot of refreshes are triggered, because data needs to be up to dateTry to only set a refresh for the part of the data that is new, with the Incremental Refresh functionality
All refreshesTakes a long time to process– Unused columns, you can identify them by opening the dataset overview in Webdashboard
– Limit the complexity of the refresh, by preprocessing your model (for example with Fabric)

You can reach out to us if you need any help with any of these issues. Our in-house (Power)-BI consultants can together with you take a look at your data(set).