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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Anonymous
Not applicable

How Report server store and run the Power BI reports?

I would like to know how Power BI reports are stored on the Report server when I use Live connection, Direct Query or Import Data from Excel. (I use on premise gateway.)

The only thing I found was the "Catalog", however I could not find proper documentation on how the report server really works.

 

 

1 ACCEPTED SOLUTION

When you save pbix report (import mode) to on-prem Power BI Report Server, then whole .pbix binnary content is saved directly to CatalogItemExtendedContent table on MSSQL Server as CatalogItem, and also is content of your .pbix report split to DataModel (including data) and ReportDefinition part and both is also saved to this table.

 

 

When user open this report:

-PBI Server check if DataModel is already loaded, if not, PBI Server load DataModel (including data) (from CatalogItemExtendedContent table) in to SSAS internal in-memory instance.

-PBI Server load ReportDefinition (from CatalogItemExtendedContent table) and send them to client

-After client open report, DAX queries of visuals are redirected to internal SSAS instance.

 

 

 

In Direct Query mode it is almost same, only change, DataModel which is same way loaded to SSAS, not contain data, but only DataModel alone. But this DataModel must be also load from MSSQL DB to SSAS instance. And clients sent DAX queries to SSAS same way, but SSAS instance translate DAX queries to queries to source. If you want true direct query to source (without SSAS model) use paginated report.

 

 

 

In case of Live connection is different, there no DataModel, there is only ReportDefiniton. It is loaded from MSSQL DB to client. And after, client DAX queries are redirected to separated SSAS instance.

 

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

Thank you @FarhanAhmed 

 

I would like to know more. Where does the report seport server saves/ stores the Power BI reports? Are they physically saved somewhere or it retrieves them from a local file?

 

In my case, I have created and published 2 reports (1 with Direct query and 1 with import data from excel files) and I can see n the "Catalog" that the queries run in 1-2 seconds, but the reports run in 30 seconds- 10 minutes!! Obviously the loading time is inacceptable for the end user. 

 

In addition to this, i've read somewhere that in order to mimimize the report run time I can disable the Anti virus on the folder in wich i've saved the reports. Is this a common practice? Do you know a similar way I can follow?

 

Thanks again for your help!

When you save pbix report (import mode) to on-prem Power BI Report Server, then whole .pbix binnary content is saved directly to CatalogItemExtendedContent table on MSSQL Server as CatalogItem, and also is content of your .pbix report split to DataModel (including data) and ReportDefinition part and both is also saved to this table.

 

 

When user open this report:

-PBI Server check if DataModel is already loaded, if not, PBI Server load DataModel (including data) (from CatalogItemExtendedContent table) in to SSAS internal in-memory instance.

-PBI Server load ReportDefinition (from CatalogItemExtendedContent table) and send them to client

-After client open report, DAX queries of visuals are redirected to internal SSAS instance.

 

 

 

In Direct Query mode it is almost same, only change, DataModel which is same way loaded to SSAS, not contain data, but only DataModel alone. But this DataModel must be also load from MSSQL DB to SSAS instance. And clients sent DAX queries to SSAS same way, but SSAS instance translate DAX queries to queries to source. If you want true direct query to source (without SSAS model) use paginated report.

 

 

 

In case of Live connection is different, there no DataModel, there is only ReportDefiniton. It is loaded from MSSQL DB to client. And after, client DAX queries are redirected to separated SSAS instance.

 

FarhanAhmed
Community Champion
Community Champion

I think report information stored Catalog table with the unique key is ItemID.

The report content information stored in "[CatalogItemExtendedContent]" can be joined using ItemId

The Connection information of data sources used in PBI Reports stored in "[dbo].[DataModelDataSource]" table and can be joined using "ItemID"

 

 

There are stored procedures available in the Report Server database which executes whenever you add/remove/update any subscription or user information of the database and report addition that can be explored.

 

 

 







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

Proud to be a Super User!




Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.