March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe 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
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.
Solved! Go to 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.
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.
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.
Proud to be a Super User!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |
User | Count |
---|---|
4 | |
4 | |
4 | |
3 | |
3 |