SQL Server Reporting Services provide a built-in log function to store rich information of execution history of the report. That information could be used to create performance baseline; trouble shoot performance etc. You could check more information from: Report Server ExecutionLog and the ExecutionLog3 View.
What’s new for SQL 2016 Mobile Report Execution Logging
From SQL 2016, Microsoft introduce a new type of mobile report which bases on Datazen. In SQL 2016 RTM, the execution logging granularity of mobile report is embedded server side dataset. It’s different from paginated report execution logging, which logging granularity is report.
Every time we generate a mobile report with data refresh, for every dataset inside the mobile report, SSRS will process the dataset from data source, then render it as JSON to client app. There will be 2 log records, the 1st record has no value of ItemPath, which Format is SHAREDDATASETJSON. The 2nd record has no value of Format, which ItemPath is the path of dataset, TimeRendering is always 0. They share the same ExecutionId.
Current recommendation
My recommendation is to apply the naming rule of dataset: put mobile report name as prefix. Then you could find out the execution basing on the name of dataset and ExecutionId.
Below is one example:
use ReportServer go select [InstanceName] ,max([ItemPath]) as [ItemPath] ,[UserName] ,[ExecutionId] ,min([TimeStart]) as [FirstTimeStart] ,max([TimeEnd]) as [LastTimeEnd] ,sum([TimeDataRetrieval]) as [TotalTimeDataRetrieval] ,sum([TimeProcessing]) as [TotalTimeProcessing] ,sum([TimeRendering]) as [TotalTimeRendering] ,sum([ByteCount]) as [TotalByteCount] ,max([RowCount]) from dbo.ExecutionLog3 group by [InstanceName],[ExecutionId],[UserName] having max([Format]) = 'SHAREDDATASETJSON' order by [FirstTimeStart] asc go
Posted by Shiyang Qiu, Aug 31, 2016
Special thanks to Chris Finlan