Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Anonymous
Not applicable

Slow Report Rendering

Hi,

I am facing issue about , Power BI Report slowness, (page loads on an avg in 24 seconds), deployed in attached premium capacity workspace.

My report is using Direct-Query connection, on Azure Sql Database view.

View has 26 columns, 50% of which are like flags and sort having value like 1 or 0 etc.

View renders in1-2 seconds via SSMS.

But power bi report, which was loading within 8-9 seconds previously (3-4 weeks ago), now renders in 24 sec (with similar amount of data as of previous)

There is only one view in Data Model, there are no transformations in power query side. There are no calculated columns created, no auto date/calendar creation etc in power bi side.

When monitored in performance monitor, table visual query is taking around 21 second time out of 24 sec. One column is using conditional formating based on other column value from same view.

When Query is checked, it simple select from where query going to server.

 

What else I should check ? How to investigate further ? 

Kindly Advise.

5 REPLIES 5
v-xiaotang
Community Support
Community Support

Hi @Anonymous 

Do you have RLS in that report?

Maybe this article could help, 

-

Troubleshoot report performance in Power BI - Power BI | Microsoft Docs

This article provides guidance that enables developers and administrators to troubleshoot slow report performance. It applies to Power BI reports, and also Power BI paginated reports.

Slow reports can be identified by report users who experience reports that are slow to load, or slow to update when interacting with slicers or other features. When reports are hosted on a Premium capacity, slow reports can also be identified by monitoring the Power BI Premium Metrics app. This app helps you to monitor the health and capacity of your Power BI Premium subscription.

vxiaotang_0-1647851398643.png

Best Regards,

Community Support Team _Tang

If this post helps, please consider Accept it as the solution to help the other members find it more quickly.

GilbertQ
Super User
Super User

Hi @Anonymous 

 

I would check to see if there have been any changes to the Azure SQL database that could be causing it to run slower?





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!







Power BI Blog

Anonymous
Not applicable

Hi GilbertQ,

When I run View (which is source of report) in Sql Server Mgmt Studio, it returns all rows in less than 2 sec response. Azure DB side nothing has been changed. What excatly I should check on Db side, if you could suggest ? Also if you could guide, how to check, about throttling of Prem Workspace capacity/process power ?

Thanks for your reply. 

Regards

Hi @Anonymous 

 

That is interesting that is running quickly via the View


Do you have any filters on your report at all? That could be slowing it down.

 

What happens when you run the same report via PBI Desktop is it fast or slow?

Just trying to understand where the bottleneck is!





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!







Power BI Blog

Anonymous
Not applicable

Its also taking similar time in local PBI-Desktop.

There is default, slicer selected (for one manager name).

 

Below is perf-mon query of costliest table visual.

Table has one conditional formating on 'Customer' based on Value of 'RAG' i.e. score.

Another web url conditional formating (i.e. hyperlink is given on Ticket id, to outside webpage)

 

 

// DAX Query
DEFINE
VAR __DS0FilterTable =
FILTER(
KEEPFILTERS(VALUES('Manager'[EscalatedTicket])),
NOT('Manager'[EscalatedTicket] IN {0,
BLANK()})
)

VAR __DS0FilterTable2 =
TREATAS({"John Doe"}, 'Manager'[Reporting Manager L1])

VAR __DS0Core =
FILTER(
KEEPFILTERS(
SUMMARIZECOLUMNS(
'Manager'[Ticket ID],
'Manager'[Status],
'Manager'[Priority],
'Manager'[Customer],
'Manager'[Expiry],
'Manager'[Subject],
'Manager'[Agent name],
__DS0FilterTable,
__DS0FilterTable2,
"MinRAG", IGNORE(CALCULATE(MIN('Manager'[RAG]))),
"tURL", IGNORE('Manager'[tURL])
)
),
OR(
OR(
OR(
OR(
OR(
OR(
NOT(ISBLANK('Manager'[Ticket ID])),
NOT(ISBLANK('Manager'[Status]))
),
NOT(ISBLANK('Manager'[Priority]))
),
NOT(ISBLANK('Manager'[Customer]))
),
NOT(ISBLANK('Manager'[Expiry]))
),
NOT(ISBLANK('Manager'[Subject]))
),
NOT(ISBLANK('Manager'[Agent name]))
)
)

VAR __DS0PrimaryWindowed =
TOPN(
501,
__DS0Core,
'Manager'[Expiry],
0,
'Manager'[Ticket ID],
1,
'Manager'[Status],
1,
'Manager'[Priority],
1,
'Manager'[Customer],
1,
'Manager'[Subject],
1,
'Manager'[Agent name],
1
)

EVALUATE
__DS0PrimaryWindowed

ORDER BY
'Manager'[Expiry] DESC,
'Manager'[Ticket ID],
'Manager'[Status],
'Manager'[Priority],
'Manager'[Customer],
'Manager'[Subject],
'Manager'[Agent name]


// Direct Query

SELECT
TOP (1000001) [t0].[Ticket ID],[t0].[Status],[t0].[Priority],[t0].[Agent name],[t0].[Customer],[t0].[EscalatedTicket],[t0].[Expiry],[t0].[Subject]
FROM
(
(
select [$Table].[Ticket ID] as [Ticket ID],
[$Table].[Status] as [Status],
[$Table].[Priority] as [Priority],
[$Table].[Ticket type] as [Ticket type],
[$Table].[Agent name] as [Agent name],
[$Table].[Customer] as [Customer],
[$Table].[EscalatedTicket] as [EscalatedTicket],
[$Table].[PendingTicket] as [PendingTicket],
[$Table].[OpenTicket] as [OpenTicket],
[$Table].[SLA Expired] as [SLA Expired],
[$Table].[CreatedAgeDays] as [CreatedAgeDays],
[$Table].[UpdatedAgeDays] as [UpdatedAgeDays],
[$Table].[SLAexp] as [SLAexp],
[$Table].[Expiry] as [Expiry],
[$Table].[ExpirySrt] as [ExpirySrt],
[$Table].[Subject] as [Subject],
[$Table].[updated_at] as [updated_at],
[$Table].[Reporting Manager L1] as [Reporting Manager L1],
[$Table].[Function Lead L2] as [Function Lead L2],
[$Table].[Org Lead L3] as [Org Lead L3],
[$Table].[Action On] as [Action On],
[$Table].[OpenAging] as [OpenAging],
[$Table].[IdleAging] as [IdleAging],
[$Table].[OpenAgingSrt] as [OpenAgingSrt],
[$Table].[IdleAgingSrt] as [IdleAgingSrt],
[$Table].[CS RAG] as [CS RAG],
[$Table].[RAG] as [RAG]
from [dbo].[vwFD_DashboardManagerTickets] as [$Table]
)
)
AS [t0]
WHERE
(
(
[t0].[Reporting Manager L1] = 'John Doe'
)
AND
(
NOT(
(
([t0].[EscalatedTicket] IN (0))
OR
(
[t0].[EscalatedTicket] IS NULL
)
)
)
)
)

GROUP BY [t0].[Ticket ID],[t0].[Status],[t0].[Priority],[t0].[Agent name],[t0].[Customer],[t0].[EscalatedTicket],[t0].[Expiry],[t0].[Subject]


// Direct Query

SELECT
TOP (1000001) *
FROM
(

SELECT [t0].[Ticket ID],[t0].[Status],[t0].[Priority],[t0].[Agent name],[t0].[Customer],[t0].[Expiry],[t0].[Subject],MIN([t0].[Ticket ID])
AS [a0],MIN([t0].[RAG])
AS [a1]
FROM
(
(
select [$Table].[Ticket ID] as [Ticket ID],
[$Table].[Status] as [Status],
[$Table].[Priority] as [Priority],
[$Table].[Ticket type] as [Ticket type],
[$Table].[Agent name] as [Agent name],
[$Table].[Customer] as [Customer],
[$Table].[EscalatedTicket] as [EscalatedTicket],
[$Table].[PendingTicket] as [PendingTicket],
[$Table].[OpenTicket] as [OpenTicket],
[$Table].[SLA Expired] as [SLA Expired],
[$Table].[CreatedAgeDays] as [CreatedAgeDays],
[$Table].[UpdatedAgeDays] as [UpdatedAgeDays],
[$Table].[SLAexp] as [SLAexp],
[$Table].[Expiry] as [Expiry],
[$Table].[ExpirySrt] as [ExpirySrt],
[$Table].[Subject] as [Subject],
[$Table].[updated_at] as [updated_at],
[$Table].[Reporting Manager L1] as [Reporting Manager L1],
[$Table].[Function Lead L2] as [Function Lead L2],
[$Table].[Org Lead L3] as [Org Lead L3],
[$Table].[Action On] as [Action On],
[$Table].[OpenAging] as [OpenAging],
[$Table].[IdleAging] as [IdleAging],
[$Table].[OpenAgingSrt] as [OpenAgingSrt],
[$Table].[IdleAgingSrt] as [IdleAgingSrt],
[$Table].[CS RAG] as [CS RAG],
[$Table].[RAG] as [RAG]
from [dbo].[vwFD_DashboardManagerTickets] as [$Table]
)
)
AS [t0]
WHERE
(
(
[t0].[Reporting Manager L1] = 'John Doe'
)
AND
(
NOT(
(
([t0].[EscalatedTicket] IN (0))
OR
(
[t0].[EscalatedTicket] IS NULL
)
)
)
)
)

GROUP BY [t0].[Ticket ID],[t0].[Status],[t0].[Priority],[t0].[Agent name],[t0].[Customer],[t0].[Expiry],[t0].[Subject]
)
AS [MainTable]
WHERE
(

NOT(
(
[a0] IS NULL
)
)
OR
NOT(
(
[a1] IS NULL
)
)

)

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.