There are several options for monitoring performance of a report server. The fourth article in our technical note series on performance and scalability covers information for optimizing entire report servers. Besides performance counters, analyzing report execution log data in particular can help answer questions such as, which reports might be good candidates for caching, how many reports were returned from cache vs. live execution vs. execution snapshot, what was the most popular report for the week, and what are the poor performing reports that need to be taken action upon?
Before you can optimize particular reports or your entire system, you need metrics and understand what they tell you. In this posting, I want to focus on how to effectively interpret and utilize the data present in the new ExecutionLog2 view in the Reporting Services 2008 catalog database. In summary, I am covering the following topics:
Note that the ExecutionLog2 view defines appropriate (nolock) hints to minimize the impact when querying this view directly. Let's start with a simple query against the report server's database:
use
Description of ExecutionLog2 Columns
ExecutionLog2.AdditionalInfo
This is where it gets really interesting. A typical value for the AdditionalInfo column may look like this:
<AdditionalInfo> <ProcessingEngine>2</ProcessingEngine> <ScalabilityTime> <Pagination>0</Pagination> <Processing>0</Processing> </ScalabilityTime> <EstimatedMemoryUsageKB> <Pagination>0</Pagination> <Processing>115</Processing> </EstimatedMemoryUsageKB> <DataExtension> <SQL>1</SQL> </DataExtension></AdditionalInfo>
Most frequent / interesting AdditionalInfo entries:
Tips for Analyzing ExecutionLog2 Information
Quick Tips for Optimizing Reports
Once you identified great candidates for further individual report design review and optimization, I recommend to utilize EstimatedMemoryUsageKB, ScalabilityTime, TimeDataRetrieval, TimeProcessing, TimeRendering, and ByteCount for gauging the impact a particular optimization has made. In order to reduce noise and improve repeatability of measurements, you should use a separate report server with minimal other user load.
My specific report optimization tips of the day:
Custom Report Item in Reporting Services 2005 This server extensibility feature introduced in Reporting
In a previous posting, I explained the new ExecutionLog2 view in Reporting Services 2008: how to utilize
So for my first technical blog posting, I'd like to take on one of the most common issues I encounter
Building and Deploying Large Scale SQL Server Reporting Services Environments Technical Note Series Authors
Recently I have had little time to devote to blogging, but I did want to pass along a couple of references
Author: Carl Rabeler Reviewers: Mark Souza, Prem Mehra, Lindsey Allen, Mike Weiner, James Podgorski,