<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlcat.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server Customer Advisory Team - SQL Server Best Practices</title><link>http://sqlcat.com/</link><description>Enabling SQL Server customers &lt;span&gt;to navigate the most challenging frontiers of large scale data management.&lt;/span&gt;</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20910.1126)</generator><item><title>Report Server Catalog Best Practices</title><link>http://sqlcat.com/technicalnotes/archive/2008/06/26/report-server-catalog-best-practices.aspx</link><pubDate>Thu, 26 Jun 2008 21:15:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:307</guid><dc:creator>denny.lee</dc:creator><slash:comments>1</slash:comments><description>&lt;p align="left"&gt;&lt;em&gt;Building and Deploying Large Scale SQL Server Reporting Services Environments—Technical Note Series&lt;/em&gt; 
&lt;p align="left"&gt;Authors: Denny Lee, Lukasz Pawlowski&lt;br /&gt;Contributors: David Reinhold, John Gallardo, Dean Kalanquin, Robert Bruckner&lt;br /&gt;Technical Reviewers: Tim Shea, Mike Ruthruff, Burzin Patel&lt;/p&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 align="left"&gt;Introduction &lt;/h4&gt;
&lt;p align="left"&gt;This technical note is part of the &lt;i&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/06/05/reporting-services-scale-out-architecture.aspx"&gt;Building and Deploying Large Scale SQL Server Reporting Services Environments Technical Note Series&lt;/a&gt;&lt;/i&gt; which provides general guidance on how to set up, implement, and optimize an enterprise scale-out architecture for your Microsoft SQL Server Reporting Services (SSRS) environment. This note provides guidance for both SQL Server 2005 and 2008 Reporting Services. The focus of this technical note is the report server catalog—the underlying databases that provide the metadata (parameters, snapshots, history, and so on) that are used by Reporting Services to provide your reports. 
&lt;h4 align="left"&gt;Architecture &lt;/h4&gt;
&lt;p align="left"&gt;Figure 1 represents a typical scale-out Reporting Services environment; as indicated by the red box, the focus of this technical note is that of the report server catalog. 
&lt;p align="left"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportServerCatalogBestPractices_C864/image_2.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="301" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportServerCatalogBestPractices_C864/image_thumb.png" width="556" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;Figure 1&lt;/strong&gt;: Reporting Services Scale Out Architecture 
&lt;p align="left"&gt;As you can see, all Reporting Services servers have connections to the report server catalog. As implied by this diagram, this single instance could be a possible bottleneck in the SSRS environment. Because of this, let’s focus on what these report server databases do and how to optimize them for your environment. 
&lt;h4&gt;Report Server Databases &lt;/h4&gt;
&lt;p align="left"&gt;The report server catalog is comprised of two report server databases: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;b&gt;ReportServer&lt;/b&gt; (&lt;b&gt;RSDB)&lt;/b&gt; stores all report metadata including report definitions, report history and snapshots, and scheduling information. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;b&gt;ReportServerTempDB&lt;/b&gt; (&lt;b&gt;RSTempDB)&lt;/b&gt; stores all of the temporary snapshots while reports are running. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportServerCatalogBestPractices_C864/image_4.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="187" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportServerCatalogBestPractices_C864/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="left"&gt;&lt;strong&gt;Figure 2&lt;/strong&gt;: Breakdown of Report Server Catalog 
&lt;p align="left"&gt;These databases are responsible for containing the metadata that is needed by the Reporting Services engine so that it knows how to request data from the data source (such as a SQL Server database or an Analysis Services database). When a report is executed by a report server, SSRS loads report metadata from &lt;b&gt;RSDB&lt;/b&gt;. This includes the data source information for the report, the default parameter values, and the report itself. Note that for ad-hoc reports, this data is not loaded from the &lt;b&gt;RSDB&lt;/b&gt; catalog database because the report comes from the RDL that is executed, published, and bound to the user’s session. As well, all user session information and live or cached execution snapshots are stored in the &lt;b&gt;RSTempDB&lt;/b&gt; database. History and execution snapshots are stored in the &lt;b&gt;RSDB&lt;/b&gt; database. Subsequent report requests can use the stored state to view the report rather than re-executing the report. 
&lt;p align="left"&gt;Report execution state is represented in a snapshot. The snapshot contains the data that is retrieved from the report’s queries to the data source. SSRS keeps these snapshots so that subsequent requests for the same report can be satisfied by using the snapshot instead of re-executing the report and obtaining the data again from the original data source (thus reducing the load on your data source). By default, these snapshots are stored in the &lt;b&gt;RSTempDB&lt;/b&gt; database. Therefore, commonly requested reports hit the &lt;b&gt;RSTempDB&lt;/b&gt; database instead of querying the original data source (provided the snapshot is current). While this reduces the load against your original data source, it does increase the load on your SSRS catalog. The size of your snapshot is directly correlated to the size of the data returned by the queries of your reports. Because of this, it is important to reduce the size of your snapshots by including only the columns (and rows) you need. 
&lt;p align="left"&gt;In addition, this also implies that you must optimize the SSRS report server catalog to prevent it from being a bottleneck since every single report request hits &lt;b&gt;RSDB&lt;/b&gt;. For frequently requested reports, many database queries will hit &lt;b&gt;RSTempDB&lt;/b&gt;. Because these databases are hit for every single report request, the report server catalog has a lot of I/O and transactions in order to share state information across multiple SSRS servers. The &lt;b&gt;RSTempDB&lt;/b&gt; tables and log will grow quickly because many transactions are performed to maintain report consistency. (For example, if you get the first page of a report, you need a snapshot of the second page that is consistent.) If you have an environment with many concurrent requests (typical of most enterprise Reporting Services environments), there can be a lot of write activity to the &lt;b&gt;RSTempDB&lt;/b&gt; log. 
&lt;p align="left"&gt;For SQL Server 2005 Reporting Services, many of the insertions are performed to the &lt;b&gt;ChunkData&lt;/b&gt;, &lt;b&gt;SnapshotData&lt;/b&gt;, and &lt;b&gt;SessionData&lt;/b&gt; tables. But SQL Server 2008 in general does not write to these tables. They exist in the catalog to support the upgrade of pre-2008 catalog. SQL Server 2008 Reporting Services uses a new snapshot storage mechanism that shreds chunks across multiple rows in a table named &lt;b&gt;Segment&lt;/b&gt;. For SQL Server 2008 Reporting Services, this table generally takes on the majority of transactions of the &lt;b&gt;RSTempDB&lt;/b&gt; database. 
&lt;p align="left"&gt;As implied by the above, there are differences in &lt;b&gt;RSDB&lt;/b&gt; and &lt;b&gt;RSTempDB&lt;/b&gt; access patterns between versions of SSRS. SQL Server 2008 Reporting Services makes use of &lt;b&gt;RSTempDB&lt;/b&gt; significantly more than SQL Server 2005 Reporting Services does. This is because we process data incrementally during report execution rather than immediately when the report is executed. To make the report execution reliable, we store the data for the report in &lt;b&gt;RSTempDB&lt;/b&gt; until it is needed to generate a particular page of the report. Clearly, this increases the number and size of queries executed against the &lt;b&gt;RSTempDB &lt;/b&gt;database and can lead to bottlenecks. 
&lt;p align="left"&gt;Therefore, to optimize your report server catalog, we suggest the following best practices. 
&lt;h5&gt;&lt;u&gt;Use a Dedicated Server&lt;/u&gt; &lt;/h5&gt;
&lt;p align="left"&gt;As noted earlier, a heavy transaction load is placed on the SSRS report server catalog. Because of this, the SSRS report server catalog load can interfere with other processes and vice versa. For example, common environment setups include the following: 
&lt;p align="left"&gt;&lt;i&gt;&lt;/i&gt;
&lt;p align="left"&gt;&lt;i&gt;&lt;u&gt;Same server as SSRS Windows/Web Services&lt;/u&gt;&lt;/i&gt; 
&lt;p align="left"&gt;The default one-box setup usually has the SSRS Windows/Web Services and the report server catalog on the same server. While this works great for small environments, in enterprise environments it causes far too much resource (CPU, memory, and disk) contention between the SSRS Windows/Web Services and the report server catalog. As well, when you scale out and add more SSRS servers, you want to have all of SSRS servers point to one dedicated report server catalog to reduce contention. 
&lt;p align="left"&gt;&lt;i&gt;&lt;u&gt;Same server as your data source relational database (SQL)&lt;/u&gt;&lt;/i&gt; 
&lt;p align="left"&gt;Another common approach is to place your SSRS report server catalog on the same server as your SQL Server data source. The issue here is that you will have SQL resource contention (&lt;b&gt;tempdb&lt;/b&gt;, plan cache, memory, buffer pool, etc.) between your SQL Server data source and your SSRS report server catalog. As you have more concurrent users, you will have a lot of hits to the SSRS report catalog (&lt;b&gt;RSDB&lt;/b&gt; for report metadata, &lt;b&gt;RSTempDB&lt;/b&gt; for report snapshots) and transactions against the relational data source. As the load increases, it will become necessary to monitor things like CPU utilization, I/O response times, network resources, and buffer pool counters to ensure that adequate resources are still available. A common method to alleviate these issues is to separate the SSRS report server catalog from your SQL server data source. 
&lt;p align="left"&gt;As you can see, these two common scenarios create database resource contentions that slow down performance. Because of this, it makes sense to have a dedicated server for your SSRS report server catalog so that you can tune your report server databases separately from your relational data source and not run into SSRS Windows/Web Services and report catalog resource contention. 
&lt;p align="left"&gt;&lt;u&gt;High-Performance Disk&lt;/u&gt; 
&lt;p align="left"&gt;Because your SSRS report server catalog has a lot of transactions, ultimately there will be a lot of disk I/O so that storage may be your resource contention. Because of this, you want to have a high‑performance disk such as a SAN or high‑RPM direct‑attach storage for your report server catalog. Some more specifics: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;To optimize your disk I/O, see the SQL Server Best Practices white paper &lt;a href="http://sqlcat.com/whitepapers/archive/2007/11/21/predeployment-i-o-best-practices.aspx"&gt;Predeployment I/O Best Practices&lt;/a&gt;, which provides great information on how storage works and how to use various tools to understand what performance you may be able to obtain for SQL Server from the storage you have. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Have more smaller sized disks with faster rotation speeds (e.g. &amp;gt;= 15,000 RPMs) rather than fewer larger sized disks with slower rotation speeds. That is, you should size your I/O based on IOS requirements instead of sizing based on capacity. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Maximize and balance your I/O across all of the available spindles. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Use separate disks for &lt;b&gt;RSDB&lt;/b&gt; and &lt;b&gt;RSTempDB&lt;/b&gt;. The profile for your &lt;b&gt;RSDB&lt;/b&gt; is a lot of small transactions because it asks for report metadata. Your &lt;b&gt;RSTempDB&lt;/b&gt; will have a lot of transactions as well, but they will be larger transactions because this database contains the report data. Having separate disks will enable you to tune your disk for the &lt;b&gt;RSDB&lt;/b&gt; and &lt;b&gt;RSTempDB&lt;/b&gt; databases separately. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Pre-grow your SSRS report server catalog databases instead of having SQL Server perform autogrow on these databases. &lt;b&gt;RSTempDB&lt;/b&gt; can grow very quickly under load and the default autogrow options lead to a lot of file system fragmentation and blocking during the autogrow task.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;For your SSRS server catalog databases, stripe your database files to the number of server cores at a ratio of 0.25 to 1.0 depending on how heavy your workload is. This enables you to minimize database allocation contention and makes it easier to rebalance your database when new LUNs become available. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;If you are using RAID, like many other SQL implementations that are write-intensive, use RAID 10 to get the best performance. Do not use RAID 5 because of the write penalty that may be involved. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Monitor disk response times to ensure that disk latency is generally lower than 20ms, ideally 10ms, and log latency is no more than 1-5ms. To do this, look for high wait times on PAGEIOLATCH_xx or use &lt;b&gt;sys.dm_os_virtual_file_stats&lt;/b&gt; to monitor response times specifically on SSRS‑related databases. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;&lt;u&gt;Move to 64-bit&lt;/u&gt; 
&lt;p align="left"&gt;For starters, if you need to stay with 32-bit and have &amp;gt;3 GB of memory because of the available hardware and OS, remember to use the /3GB and/or the /PAE (for systems with &amp;gt;4 GB of memory) switches (for the OS) and enable AWE in SQL Server so that it can use more than 3 GB of memory. Note that AWE can only be used for data cache. Do not forget that this involves both SQL Server changes (configure advanced options) and changes to the Windows OS boot.ini file. 
&lt;p align="left"&gt;We suggest moving to 64-bit because much of the hardware available right now is 64-bit and, as of SQL Server 2005, SQL Server itself natively supports 64-bit. With 64-bit, you have a much larger addressable memory space to use—especially if you increase the amount of memory. This means that you can handle larger queries (more data) and handle more connections to the server running SQL Server. Note that this does not result in higher throughput as that is typically bound to CPU. Nevertheless, the ability to handle more connections and larger reports minimize the chance that your report server catalog will be a bottleneck for your system. As well, the ability for 64-bit to scale is much higher than 32-bit and this is the platform of choice for SQL databases going forward. 
&lt;p align="left"&gt;&lt;u&gt;Backup/Restore&lt;/u&gt; 
&lt;p align="left"&gt;The data in &lt;b&gt;RSTempDB&lt;/b&gt; is highly volatile—typically one can expect its lifespan to be approximately equal to the &lt;b&gt;SessionTimeout&lt;/b&gt; value configured for the SSRS server for most reports and viewing and usage time. The default &lt;b&gt;SessionTimeout&lt;/b&gt; is 10 minutes, which is the report lifetime policy that defines when data can be cleaned up. The &lt;b&gt;CleanupCycleMinutes&lt;/b&gt; value is the parameter that guides the background cleanup thread. Once the session timeout value is reached, we clean up the temporary snapshot from &lt;b&gt;tempdb&lt;/b&gt;. We do that every cleanup cycle minutes, or continuously if the previous cleanup didn’t complete yet. The actual lifespan varies based on usage patterns but a lifespan longer than one day would be rare. As such, it is not necessary to protect &lt;b&gt;RSTempDB&lt;/b&gt; data for data recovery purposes. 
&lt;p align="left"&gt;The data in &lt;b&gt;RSDB &lt;/b&gt;is long lived—this data should be backed up following the standard guidance provided for SQL Server: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms187048.aspx"&gt;Backing Up and Restoring Databases in SQL Server&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms190954.aspx"&gt;Optimizing Backup and Restore Performance in SQL Server&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;As well, do not forget to back up (and restore) the encryption key associated with these databases; you can find more information at &lt;a href="http://technet.microsoft.com/en-us/library/ms157275.aspx"&gt;Backing Up and Restoring Encryption Keys&lt;/a&gt; 
&lt;p align="left"&gt;&lt;u&gt;&lt;/u&gt;
&lt;p align="left"&gt;&lt;u&gt;Maintain Your SSRS Report Server Catalog Databases&lt;/u&gt; 
&lt;p align="left"&gt;Recall that the SSRS report server catalog databases are SQL Server databases specifically for Reporting Services usage. Therefore, the standard techniques to maintain SQL databases apply to the SSRS report server catalog databases. For example, periodically re-indexing the catalog tables and/or updating the database statistics may improve query performance. 
&lt;p align="left"&gt;As noted above, you may want to consider configuring the &lt;b&gt;CleanupCycleMinutes&lt;/b&gt; setting in the RSReportServer.config file. This setting determines how frequently expired session content or unused snapshot data is removed from &lt;b&gt;RSTempDB&lt;/b&gt;. The default setting is 10 minutes, which is similar to the default session timeout. &lt;b&gt;RSTempDB&lt;/b&gt; generally stays more compact when using frequent cleanups, but at the cost of increasing the general load on the system. If the size of &lt;b&gt;RSTempDB&lt;/b&gt; not a major concern and the system has high throughput user loads, you may want to considering slightly increasing the &lt;b&gt;CleanupCycleMinutes&lt;/b&gt; configuration (such as setting it to 20 minutes). 
&lt;h4&gt;Discussion &lt;/h4&gt;
&lt;p align="left"&gt;Since the SSRS Windows/Web Services interact with your report server catalog for almost all SSRS queries, it is important that you optimize your SSRS catalog databases so that they are not a point of contention. Standard SQL optimization techniques come into play here since SSRS report server catalogs are instances of SQL Server databases. Following the above suggested methods will make your SSRS environment easier to scale to enterprise data loads. 
&lt;p align="left"&gt;Recall that because of the concern for report consistency, it is important for Reporting Services to cache all report data. Therefore, to reduce the number of requests that are placed on your report server catalog, you may want to consider using the File System (FS) Snapshots feature, which is discussed in the next technical note of this technical series—SS&lt;i&gt;RS Scale-Out Deployment Best Practices&lt;/i&gt; [work in progress]. &lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=307" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/technicalnotes/archive/tags/Performance/default.aspx">Performance</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Scalability/default.aspx">Scalability</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Reporting+Services/default.aspx">Reporting Services</category></item><item><title>Reporting Services Scale-Out Architecture</title><link>http://sqlcat.com/technicalnotes/archive/2008/06/05/reporting-services-scale-out-architecture.aspx</link><pubDate>Thu, 05 Jun 2008 18:59:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:290</guid><dc:creator>denny.lee</dc:creator><slash:comments>0</slash:comments><description>&lt;p align="left"&gt;&lt;em&gt;Building and Deploying Large Scale SQL Server Reporting Services Environments Technical Note Series&lt;/em&gt; 
&lt;p align="left"&gt;Authors: Denny Lee, Lukasz Pawlowski &lt;br /&gt;Contributors: David Reinhold, Robert Bruckner &lt;br /&gt;Technical Reviewers: Burzin Patel &lt;br /&gt;&lt;/p&gt;
&lt;h4 align="left"&gt;Introduction &lt;/h4&gt;
&lt;p align="left"&gt;This technical note is the introduction to the &lt;i&gt;Building and Deploying Large Scale SQL Server Reporting Services Environments Technical Note Series,&lt;/i&gt; which provides general guidance on how to set up, implement, and optimize an enterprise scale-out architecture for your SQL Server Reporting Services (SSRS) environment. This note provides guidance for both SQL Server 2005 and 2008 Reporting Services. The focus of this technical note is the Reporting Services scale-out architecture, which is referenced throughout this technical note series. 
&lt;h4 align="left"&gt;Architecture &lt;/h4&gt;
&lt;p align="left"&gt;&lt;b&gt;Figure 1&lt;/b&gt; represents a typical scale-out Reporting Services environment. 
&lt;p align="left"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportingServicesScaleOutArchitecture_A890/image_2.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="319" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportingServicesScaleOutArchitecture_A890/image_thumb.png" width="576" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="left"&gt;&lt;em&gt;&lt;strong&gt;Figure 1&lt;/strong&gt;: Reporting Services Scale-Out Architecture &lt;/em&gt;
&lt;p align="left"&gt;From this architecture, you will notice the following: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;When your &lt;b&gt;clients&lt;/b&gt; execute a query to Reporting Services, the query goes through a Network Load Balancer (NLB) to connect to the appropriate Reporting Services server. In order to balance the query load, your NLB can round-robin between the different SSRS servers so that the requests are evenly distributed amongst all the SSRS servers and a single server instance is not overburdened by too many requests. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;The Reporting Services Windows/Web Services (denoted as &lt;b&gt;RS Server&lt;/b&gt;) handle the client query request and perform the task of submitting the query to the report server catalog and/or the assigned relational data source, as well as resolving the data results back to the client. In enterprise environments, you will often want to scale out to multiple servers to handle many concurrent queries against your Reporting Services servers. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;The RS Server makes a request to the &lt;b&gt;report catalog&lt;/b&gt; databases initially to obtain the report metadata, which includes report definitions, report history and snapshots, and scheduling information from the &lt;b&gt;ReportServer&lt;/b&gt; database (&lt;b&gt;RSDB&lt;/b&gt;). If the report data desired is already available in a SSRS snapshot, the RS Server makes a request for this from the &lt;b&gt;RSTempDB&lt;/b&gt; database, which stores all of the temporary snapshots while reports are being run. As noted in the above architecture design, in an enterprise environment you have multiple SSRS servers reading metadata information from the same report catalog instance. This is done to keep state information between SSRS servers; when a user requests a report from one SSRS server, if the subsequent query goes to another SSRS server, the state of that report (which report was used, what parameters were used, etc.) is kept so that the transition from one SSRS server to another is transparent to the user requesting the report. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;If the report information is not available in the form of a SSRS snapshot, the SSRS server makes a request to the data source (denoted as &lt;b&gt;Reporting Data)&lt;/b&gt;. Whether your data source is a flat file or an SQL database, how this data is requested is defined by the parameters in the report catalog to enable the SSRS server to perform the task of requesting this data. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Keys to Success &lt;/h4&gt;
&lt;p align="left"&gt;To ensure a successful enterprise implementation of your Reporting Services environment, please note first that a lot of documentation is available online. Many mistakes in enterprise customer implementations can be avoided by reviewing the following white papers. 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms143747.aspx"&gt;Upgrading Reporting Services (SQL Books Online)&lt;/a&gt;: This a good reference to understand the issues related to upgrading from SQL Server 2000 Reporting Services to SQL Server 2005 Reporting Services. You can find the documentation for upgrading from SQL Server 2005 Reporting Services to SQL Server 2008 Reporting Services at &lt;a href="http://technet.microsoft.com/en-us/library/bb522792(SQL.100).aspx"&gt;Upgrade (Reporting Services)&lt;/a&gt;, though this is pre-release documentation at this time. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms156453.aspx"&gt;Configuring a Report Server Scale-Out Deployment&lt;/a&gt;: Before starting a scale-out deployment for Reporting Services, please be sure to review this document, which includes deployment steps, creating and configuring SSRS instances, and other important configuration steps. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/pspsqlrs.mspx"&gt;Planning for Scalability and Performance with Reporting Services&lt;/a&gt;: To plan for scalability and optimal performance with Reporting Services, this is a very important white paper for you to review. Before you design your scale-out solution, we definitely advise you to review this paper. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Customer Scenario &lt;/h4&gt;
&lt;p align="left"&gt;Below is an example customer scenario that has been shrunk down to its core components. 
&lt;p align="left"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportingServicesScaleOutArchitecture_A890/image_4.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="372" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportingServicesScaleOutArchitecture_A890/image_thumb_1.png" width="404" border="0" /&gt;&lt;/a&gt; 
&lt;p align="left"&gt;&lt;em&gt;&lt;strong&gt;Figure 2:&lt;/strong&gt; Customer Scenario &lt;/em&gt;
&lt;p align="left"&gt;This customer currently has: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Four SSRS servers that keep state information by connecting to a separate server that contains both report server catalog databases (&lt;b&gt;RSDB&lt;/b&gt; and &lt;b&gt;RSTempDB&lt;/b&gt;). &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;The four SSRS servers connect to two SQL Server Analysis Services (SSAS) servers to provide pivot capability in the form of multidimensional reports. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Their two SSAS servers are connected to a single relational data source; they have two SSAS servers in order to handle the query loads placed on SSAS servers.&amp;nbsp; For more information on scaling out SSAS servers, see: &lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/03/16/analysis-services-synchronization-best-practices.aspx"&gt;Analysis Services Synchronization Best Practices&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2007/12/16/scale-out-querying-with-analysis-services.aspx"&gt;Scale-Out Querying with Analysis Services&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://sqlcat.com/whitepapers/archive/2007/11/19/scale-out-querying-with-analysis-services-using-san-snapshots.aspx"&gt;Scale-Out Querying with Analysis Services Using SAN Snapshots&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;a href="http://sqlcat.com/technicalnotes/archive/2008/01/17/sample-robocopy-script-to-customer-synchronize-analysis-services-databases.aspx"&gt;Sample Robocopy Script to customer synchronize Analysis Services databases&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p align="left"&gt;To help handle the high query load, the customer also made use of: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Use of a dedicated &lt;b&gt;RSDB&lt;/b&gt; server for the Reporting Services database instances to reduce database blocking issues due to resource contention. For more information, see &lt;i&gt;&lt;a class="" href="http://sqlcat.com/technicalnotes/archive/2008/06/26/report-server-catalog-best-practices.aspx"&gt;Report Catalog Best Practices&lt;/a&gt;&lt;/i&gt; within this technical note series. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;SSRS File System snapshots to make use of the cache; more information on this can be found in &lt;i&gt;SSRS Scale-Out Deployment Best Practices&lt;/i&gt; [to be published] within this technical note series. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;With this setup, they were able to use Visual Studio Test System to verify that the above configuration could handle 1,800 concurrent users with a 10-sec think time (time delay between the execution of each user’s reports) and an average transaction time of 35 sec. 
&lt;h4&gt;Performance Testing &lt;/h4&gt;
&lt;p align="left"&gt;Another key component to ensuring a successful enterprise implementation is the ability to determine the query load prior to actually placing it into production. It is important that you understand your reporting scenarios and the data that needs to be delivered so that you can better plan capacity (hardware, resources, etc.). The above customer executed tests to make sure they could handle their expected maximum workload of 1,800 concurrent users. This allowed them to better plan for hardware capacity—and they realized that they did not need to build out more SSRS servers to handle their workload. 
&lt;p align="left"&gt;Your report scenarios are defined by user personas and usage patterns. For user personas, you need to understand the type of users who are using your reports, whether it is the director who typically wants high-level summary statistics or the analyst who needs detailed reports. Understanding usage patterns enables you to know if you have users who typically want to review a few sets of reports or want to heavily interact (drill down / up / through) with these reports. Once you understand your typical report scenarios, it is important for the purpose of performance to use actual reports when you test. If you do not have these, your test reports should closely reflect what users will actually be querying. As well, any and all tests that you do should isolate Reporting Services from other systems. This is implied from the above architecture diagrams, but a common issue is that customers run performance tests on shared systems causing both performance degradation and making it difficult to isolate problems. 
&lt;p align="left"&gt;To run performance tests, a good tool to use is Visual Studio Team System (VSTS)—and a great reference is &lt;a href="http://technet.microsoft.com/en-us/library/aa964139.aspx"&gt;Using Visual Studio 2005 to Perform Load Testing on a SQL Server 2005 Reporting Services Report Server&lt;/a&gt;. 
&lt;h4&gt;Customer Scenario Testing &lt;/h4&gt;
&lt;p align="left"&gt;Our customer was able to use and define within VSTS for their tests: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Mean transaction time range: 33-36 sec &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Think time: 10 sec &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;The configuration of the tests involved the use of a single test controller (where VSTS would execute and control the tests) that used four 32-bit agents, which went against the SSRS servers. The SSRS servers all used the same hardware with 8-GB RAM with four cores. 
&lt;p align="left"&gt;To define the report query workflow, they used a predefined workload where 75% was simple and 25% was complex using a randomized selection of report parameters. An example of a workflow is: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Step 1 &lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Open list of reports &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Think time &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Step 2 &lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Open report by using default parameters &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Report renders &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Think time &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Step 3 &lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Change parameter &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Report renders &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Think time&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="left"&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportingServicesScaleOutArchitecture_A890/image_6.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="392" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/ReportingServicesScaleOutArchitecture_A890/image_thumb_2.png" width="453" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="left"&gt;&lt;em&gt;&lt;strong&gt;Figure 3:&lt;/strong&gt; VSTS workload to determine number of servers to maximum number of concurrent users for sustained time period (&amp;gt;= 15min) on the SSRS server &lt;/em&gt;
&lt;p align="left"&gt;For this specific customer’s tests (i.e., their workload and their data), you can see from Figure 3 that one SSRS server could handle a maximum of 608 concurrent users for a sustained time period (&amp;gt;=15 minutes). By scaling out the SSRS servers, they also found that they could handle 1,218 concurrent users with two servers and approximately 2,300 concurrent users with four servers. 
&lt;p align="left"&gt;From this specific test scenario (four servers with this specific workload and tests), they also noted that with &amp;gt;2,000 concurrent users there was a higher rate of failed tests (SSRS queries executed with no results or errors returned). But at 1,800 concurrent users (the expected maximum workload), the rate of failed tests was at an acceptable level. If they wanted to handle a larger number of concurrent users, they would only need to scale out the number of SSRS servers further. Also of interest in their environment was that doubling the memory and CPU of their hardware (increasing to 16-GB RAM and eight cores) resulted in only a 1/3 increase in load capacity. Note, SQL Server 2008 Reporting Services should make better use of resources when adding more cores and memory. Therefore, it made sense for them to scale out (by increasing the number of servers) instead of scaling up (by adding more memory and CPUs to the servers) to handle higher workloads. 
&lt;p align="left"&gt;Please note, the results of these tests might not apply to your environment. These test results are specific for this customer scenario according to their workload, hardware, and scenarios. Nevertheless, you can see the importance of doing performance testing within your Reporting Services environment so you can more accurately predict the load it can handle. 
&lt;h4&gt;Next Notes &lt;/h4&gt;
&lt;p align="left"&gt;As noted in the above section, this is the first technical note of the &lt;i&gt;Building and Deploying Large Scale SQL Server Reporting Services Environments Technical Note Series&lt;/i&gt;. While this technical note provides the high level architecture, we also provide some additional guidance: 
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;b&gt;&lt;a class="" href="http://sqlcat.com/technicalnotes/archive/2008/06/26/report-server-catalog-best-practices.aspx"&gt;Report Catalog Best Practices&lt;/a&gt;&lt;/b&gt;: Provides guidance and best practices on the report server catalogs—the underlying databases that provide metadata (parameters, snapshots, history, etc.) used by Reporting Services to provide your reports. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;b&gt;SSRS Scale-Out Deployment Best Practices &lt;i&gt;[link provided when published]&lt;/i&gt;&lt;/b&gt;: Provides guidance and best practices on deployment details for scaling out your Reporting Services environment including configurations and the use of File System snapshots. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;b&gt;SSRS Performance Optimization Configurations &lt;i&gt;[link provided when published]&lt;/i&gt;&lt;/b&gt;: Provides guidance and best practices on using specific Reporting Services features and configurations to optimize the performance of your Reporting Services environment. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;&lt;b&gt;SSRS Troubleshooting Tips &lt;i&gt;[link provided when published]&lt;/i&gt;&lt;/b&gt;: Provides various troubleshooting tips that are helpful to better understand issues that may occur within your Reporting Services environment. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Special Thanks &lt;/h4&gt;
&lt;p align="left"&gt;We’d also like to thank Craig Utley, Brian Welcker, Jim Carroll, Bill Emmert, and Nicholas Dritsas for their original contributions. 
&lt;div align="left"&gt;&amp;nbsp;&lt;/div&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=290" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/technicalnotes/archive/tags/Performance/default.aspx">Performance</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Scalability/default.aspx">Scalability</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Reporting+Services/default.aspx">Reporting Services</category></item><item><title>How Microsoft IT Leverages SQL Server 2008 SSIS Dataflow Engine Enhancements</title><link>http://sqlcat.com/presentations/archive/2008/06/04/how-microsoft-it-leverages-sql-server-2008-ssis-dataflow-engine-enhancements.aspx</link><pubDate>Wed, 04 Jun 2008 05:47:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:287</guid><dc:creator>denny.lee</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The Information Security Consolidated Event Management (ICE) system is a more than 30-terabyte data warehouse used by the Microsoft Information Security team to analyze network utilization events captured by various sources, including over 100 proxy servers, mail servers, Net logon servers, etc.&amp;nbsp; The ICE database processes approximately 1 terabyte of log data each day and it has become a key component in the incident response process, in addition to forensics investigations.&amp;nbsp; Analysis of the proxy data has empowered the Microsoft Information Security team to identify and remediate numerous security issues that would have gone undetected otherwise.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;ICE version 4.0 is an ambitious project set to deliver almost real-time data and high-query performance to the security team using Microsoft SQL Server 2008. Moreover, ICE 4.0 is also designed to perform all sorts of data filtering and transformation during the data-loading process, so the schema of data stored in ICE is tailored for investigation analysis/reporting needs.&amp;nbsp; An Online Analytical Processing (OLAP) cube is built on top of the ICE data warehouse to facilitate aggregated queries.&amp;nbsp;&amp;nbsp; Join this session to learn how enhancements to the Microsoft SQL Server Integration Service (SSIS) 2008 dataflow engine have significantly improved the performance of loading, filtering and transforming 1 terabyte of network log data into the ICE data warehouse.&lt;/p&gt;
&lt;p&gt;You can download the interviews here: &lt;a class="" href="http://download.microsoft.com/download/4/8/2/4823e459-d803-4e62-a831-9ceb86c18f61/TechNetRadio05202008-web.wma" target="_blank"&gt;WMA&lt;/a&gt; | &lt;a class="" href="http://download.microsoft.com/download/4/8/2/4823e459-d803-4e62-a831-9ceb86c18f61/TechNetRadio05202008-hi-web.mp3" target="_blank"&gt;MP3 Hi&lt;/a&gt; | &lt;a class="" href="http://download.microsoft.com/download/4/8/2/4823e459-d803-4e62-a831-9ceb86c18f61/TechNetRadio05202008-lo-web.mp3" target="_blank"&gt;MP3 Low&lt;/a&gt;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=287" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/presentations/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>Analysis Services Many-to-Many Dimensions: Query Performance Optimization Techniques</title><link>http://sqlcat.com/whitepapers/archive/2008/05/03/analysis-services-many-to-many-dimensions-query-performance-optimization-techniques.aspx</link><pubDate>Sat, 03 May 2008 19:29:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:277</guid><dc:creator>CarlRabeler</dc:creator><slash:comments>1</slash:comments><description>&lt;div class="downloadInfo"&gt;&lt;a class="" title="Description" name="Description"&gt;&lt;/a&gt;&lt;span&gt;
&lt;h5&gt;Brief Description&lt;/h5&gt;
&lt;div id="quickDescription"&gt;This best practices white paper discusses three many-to-many query performance optimization techniques, including how to implement them, and the performance testing results for each technique.&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;Overview&lt;/h4&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class="downloadInfo"&gt;&lt;span&gt;Many-to-many dimension relationships in SQL Server 2005 Analysis Services (SSAS) enable you to easily model complex source schemas and provide great analytical capabilities. This capability frequently comes with a substantial cost in query performance due to the runtime join required by Analysis Services to resolve many-to-many queries. This best practices white paper discusses three many-to-many query performance optimization techniques, including how to implement them, and the performance testing results for each technique. It demonstrates that optimizing many-to-many relationships by compressing the common relationships between the many-to-many dimension and the data measure group, and then defining aggregations on both the data measure group and the intermediate measure group yields the best query performance. The results show dramatic improvement in the performance of many-to-many queries as the reduction in size of the intermediate measure group increases. Test results indicate that the greater the amount of compression, the greater the performance benefits—and that these benefits persist as additional fact data is added to the main fact table (and into the data measure group).&lt;/span&gt;&lt;/div&gt;
&lt;div class="downloadInfo"&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="downloadInfo"&gt;&lt;span&gt;&lt;a href="http://technet.microsoft.com/en-us/sqlserver/bb671430.aspx"&gt;http://technet.microsoft.com/en-us/sqlserver/bb671430.aspx&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=277" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/whitepapers/archive/tags/Analysis+Services/default.aspx">Analysis Services</category></item><item><title>Tuning the Performance of Backup Compression in SQL Server 2008</title><link>http://sqlcat.com/technicalnotes/archive/2008/04/21/tuning-the-performance-of-backup-compression-in-sql-server-2008.aspx</link><pubDate>Mon, 21 Apr 2008 19:37:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:275</guid><dc:creator>SanjayMishra</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Authors: Mike Ruthruff, Sanjay Mishra &lt;/p&gt;
&lt;p&gt;Contributor: Steve Schmidt &lt;/p&gt;
&lt;p&gt;Technical Reviewers: Kevin Farlee, Sunil Agarwal, Burzin Patel, Lindsey Allen, Mark Souza, Mark Tomlinson, Denny Lee, Prem Mehra, Alexey Yeltsov, Yuriy Toropov, Glenn Berry (SQL Server MVP)&lt;/p&gt;
&lt;h3&gt;Overview &lt;/h3&gt;
&lt;p&gt;Backup compression is a new feature in SQL Server 2008 that can help provide smaller sized backups and reduce backup time. This document provides guidance related to tuning options for backup performance. All of the information and test results presented here were done specifically by using the backup compression feature of SQL Server 2008; however, they apply broadly to any backup scenario whether backup compression is used or not. They also apply to restore operations; however, restore will not be covered in depth in this document. For an introduction to the backup compression feature, see Backup Compression, in SQL Server Books Online.&lt;/p&gt;
&lt;h3&gt;Benefits of Backup Compression&lt;/h3&gt;
&lt;p&gt;One major benefit of backup compression is space saving. The size of the compressed backup is smaller than that of the uncompressed backup, which results not only in space savings, but also in fewer overall I/O operations during backup and restore operations. The amount of space you save depends upon the data in the database, and a few other factors, such as whether the tables and indexes in the database are compressed, and whether the data in the database is encrypted. To determine the effectiveness of backup compression, the following query can be used:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;SELECT &lt;br /&gt;&amp;nbsp; b.database_name &amp;#39;Database Name&amp;#39;, &lt;br /&gt;&amp;nbsp; CONVERT (BIGINT, b.backup_size / 1048576 ) &amp;#39;UnCompressed Backup Size (MB)&amp;#39;, &lt;br /&gt;&amp;nbsp; CONVERT (BIGINT, b.compressed_backup_size / 1048576 ) &amp;#39;Compressed Backup Size (MB)&amp;#39;, &lt;br /&gt;&amp;nbsp; CONVERT (NUMERIC (20,2), (CONVERT (FLOAT, b.backup_size) / &lt;br /&gt;&amp;nbsp; CONVERT (FLOAT, b.compressed_backup_size))) &amp;#39;Compression Ratio&amp;#39;, &lt;br /&gt;&amp;nbsp; DATEDIFF (SECOND, b.backup_start_date, b.backup_finish_date) &amp;#39;Backup Elapsed Time (sec)&amp;#39; &lt;br /&gt;FROM &lt;br /&gt;&amp;nbsp; msdb.dbo.backupset b &lt;br /&gt;WHERE &lt;br /&gt;&amp;nbsp; DATEDIFF (SECOND, b.backup_start_date, b.backup_finish_date) &amp;gt; 0 &lt;br /&gt;&amp;nbsp; AND b.backup_size &amp;gt; 0 &lt;br /&gt;ORDER BY &lt;br /&gt;&amp;nbsp; b.backup_finish_date DESC&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Table 1 shows the output of the above query after taking an uncompressed and a compressed backup.&lt;/p&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;
&lt;table class="MsoNormalTable" style="MARGIN:auto auto auto 4.65pt;BORDER-COLLAPSE:collapse;mso-table-layout-alt:fixed;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt;" cellspacing="0" cellpadding="0" class="MsoNormalTable"&gt;

&lt;tr style="HEIGHT:31.5pt;mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;BORDER-LEFT:windowtext 1pt solid;WIDTH:59.25pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:31.5pt;mso-border-alt:solid windowtext .5pt;mso-background-themecolor:background2;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Database Name&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:85.5pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:31.5pt;mso-background-themecolor:background2;mso-border-top-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Uncompressed Backup Size (MB)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:1.5in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:31.5pt;mso-background-themecolor:background2;mso-border-top-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Compressed Backup Size (MB)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:76.5pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:31.5pt;mso-background-themecolor:background2;mso-border-top-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Compression Ratio&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:1in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:31.5pt;mso-background-themecolor:background2;mso-border-top-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Backup Time (Seconds)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:72.9pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:31.5pt;mso-background-themecolor:background2;mso-border-top-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Comments&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="HEIGHT:15pt;mso-yfti-irow:1;"&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:windowtext 1pt solid;WIDTH:59.25pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;BCTEST&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:85.5pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;292705&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:1.5in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;95907&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:76.5pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;3.05&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:1in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1705&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:72.9pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Compressed backup&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="HEIGHT:15pt;mso-yfti-irow:2;mso-yfti-lastrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:windowtext 1pt solid;WIDTH:59.25pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;BCTEST&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:85.5pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;292705&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:1.5in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;292705&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:76.5pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:1in;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;3348&lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:#f0f0f0;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:#f0f0f0;WIDTH:72.9pt;PADDING-TOP:0in;BORDER-BOTTOM:windowtext 1pt solid;HEIGHT:15pt;BACKGROUND-COLOR:transparent;mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Uncompressed backup&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;span style="FONT-SIZE:12pt;FONT-FAMILY:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;
&lt;p&gt;&lt;strong&gt;Table 1: Comparing compressed and uncompressed backup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For an uncompressed backup, the compression ratio is 1 and the Compressed Backup Size reports the same value as the Uncompressed Backup Size. The higher the compression ratio, the greater the space saving. For our test database, we achieved a compression ratio of 3.05 and saved approximately 67% space for the backup. Figure 1 illustrates the benefits of backup compression in terms of space and time. Databases using the Transparent Database Encryption (TDE) feature of SQL Server 2008 may not see as high backup compression ratios (in most cases, it will be close to 1) due to the fact that encrypted data does not lend itself well to compression. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;WIDTH:605px;HEIGHT:277px;BORDER-RIGHT-WIDTH:0px;" height="391" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_thumb.png" width="789" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 1: Benefits of backup compression in terms of space and time&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As illustrated in Figure 1, a compressed backup is smaller in size, and hence requires fewer write I/Os to the backup media. This results in reduced backup time. Backup is an I/O intensive operation so reduction in I/O will be beneficial to performance. &lt;/p&gt;
&lt;h3&gt;Test Workload and Test Environment&lt;/h3&gt;
&lt;p&gt;Our test environment for these results consisted of a database representing an OLTP stock trading application with a database size (excluding free space) of approximately 300 GB. The hardware used for the testing was a 4-socket dual core DELL 6950 server and an EMC Clariion (CX700) storage array with 4GB of cache allocated 80% to write operations. The volume/LUN layout is shown in Table 2.&lt;/p&gt;
&lt;table class="MsoTableGrid" style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;BORDER-COLLAPSE:collapse;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-alt:solid black .5pt;mso-border-themecolor:text1;" cellspacing="0" cellpadding="0" class="MsoTableGrid"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;mso-border-alt:solid black .5pt;mso-background-themecolor:background2;mso-border-themecolor:text1;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Volume&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;WIDTH:95.75pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;mso-border-alt:solid black .5pt;mso-background-themecolor:background2;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Purpose&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-weight:bold;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;WIDTH:95.75pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;mso-border-alt:solid black .5pt;mso-background-themecolor:background2;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;RAID Level&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-weight:bold;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;BORDER-TOP:black 1pt solid;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;BACKGROUND:#eeece1;PADDING-BOTTOM:0in;WIDTH:132.15pt;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;mso-border-alt:solid black .5pt;mso-background-themecolor:background2;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Number of Disks&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-bidi-font-weight:bold;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;E: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Data files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;8 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;F: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Data files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;8 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;G: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Data files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;8 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:4;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;H: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Data files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;8 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:5;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;L: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Log files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;8 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:6;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;M: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Backup files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;8 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:7;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;P: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Backup files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;2 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:8;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Q: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Backup files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;2 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:9;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;R: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Backup files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;2 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:10;mso-yfti-lastrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;PADDING-BOTTOM:0in;BORDER-LEFT:black 1pt solid;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-top-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;S: &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;Backup files &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:95.75pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;1+0 &lt;/span&gt;&lt;/td&gt;
&lt;td class="" style="BORDER-RIGHT:black 1pt solid;PADDING-RIGHT:5.4pt;PADDING-LEFT:5.4pt;BORDER-LEFT-COLOR:#f0f0f0;PADDING-BOTTOM:0in;WIDTH:132.15pt;BORDER-TOP-COLOR:#f0f0f0;PADDING-TOP:0in;BORDER-BOTTOM:black 1pt solid;BACKGROUND-COLOR:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-themecolor:text1;mso-border-left-themecolor:text1;mso-border-top-themecolor:text1;mso-border-bottom-themecolor:text1;mso-border-right-themecolor:text1;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-size:12.0pt;"&gt;2 &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Table 2: Disk volume layout for backup compression tests&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In each of the disk volumes shown in Table 2 there was no sharing of physical disks between any of the volumes. There were 32 total disks for the data, 8 for the log and 16 for the backup files. &lt;/p&gt;
&lt;p&gt;SQL Server data files were striped such that each filegroup contained four data files—each file of a filegroup was placed on a separate data volume. &lt;/p&gt;
&lt;h3&gt;Determining Achievable Throughput of Backup Compression&lt;/h3&gt;
&lt;p&gt;Whenever you attempt to tune the performance of backup compression, it is important to first understand the achievable theoretical throughputs of the given hardware configuration, specifically the storage. The throughput of backup compression is bound by the CPU resources, the throughput of the input devices, or the throughput of the output devices.&lt;/p&gt;
&lt;p&gt;One method of determining the throughput of a given configuration is to perform backup to a NUL device multiple times by varying the BUFFERCOUNT setting. Use the default BUFFERCOUNT first, and then explicitly specify BUFFERCOUNT in subsequent tests—each time increasing BUFFERCOUNT to a higher value. For example:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;BACKUP&lt;b&gt; &lt;/b&gt;DATABASE&lt;b&gt; [BCTEST] &lt;/b&gt;TO&lt;b&gt; &lt;/b&gt;DISK&lt;b&gt; &lt;/b&gt;=&lt;b&gt; &lt;/b&gt;&amp;#39;NUL&amp;#39;&lt;b&gt; &lt;/b&gt;WITH&lt;b&gt; &lt;/b&gt;COMPRESSION&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;BACKUP&lt;b&gt; &lt;/b&gt;DATABASE&lt;b&gt; [BCTEST] &lt;/b&gt;TO&lt;b&gt; &lt;/b&gt;DISK&lt;b&gt; &lt;/b&gt;=&lt;b&gt; &lt;/b&gt;&amp;#39;NUL&amp;#39;&lt;b&gt; &lt;/b&gt;WITH&lt;b&gt; &lt;/b&gt;COMPRESSION,&lt;b&gt; &lt;/b&gt;BUFFERCOUNT&lt;b&gt; &lt;/b&gt;=&lt;b&gt; 50&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Default BUFFERCOUNT is determined dynamically by SQL Server based on the number of database volumes and output devices. Default values for BUFFERCOUNT are chosen so they will apply to a broad range of environments which is why tuning these on high end systems may be necessary to obtain optimal performance.&lt;/p&gt;
&lt;p&gt;More information on tuning the BUFFERCOUNT parameter will be given later in this document. The &lt;a href="http://technet.microsoft.com/en-us/library/ms186865(SQL.100).aspx"&gt;BACKUP&lt;/a&gt; section in SQL Server Books Online also contains related information. &lt;/p&gt;
&lt;p&gt;At some point during the above tests, you will observe one of the following, which will determine the limits of the hardware:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The total CPU utilization will be near 100%. &lt;/li&gt;
&lt;li&gt;The disk throughput will remain constant, while the latency increases.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;If total CPU utilization nears 100% across all cores, this is your bounding resource. If the total CPU is less than 100%, the observed throughput of the reads is your maximum achievable throughput. Once you have this value, you can then perform a backup to a real output device. If you do not achieve the same throughput attained by using BACKUP to NUL, write throughput to the output device is your bottleneck.&lt;/p&gt;
&lt;p&gt;Figure 2 illustrates the throughput we achieved as we increased BUFFERCOUNT during our BACKUP to NUL tests. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_4.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;WIDTH:602px;HEIGHT:315px;BORDER-RIGHT-WIDTH:0px;" height="487" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_thumb_1.png" width="817" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 2: &lt;/strong&gt;&lt;b&gt;Backup throughput to NUL device with varying BUFFERCOUNT&lt;strong&gt;&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Similarly, the performance monitor graph in Figure 3 illustrates the fact that I/O on the read device is our bounding resource. This performance monitor log was run continuously across all iterations of our tests. Our achieved throughput was approximately 400 MB/sec before the read operations became I/O bound.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_6.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;WIDTH:614px;HEIGHT:426px;BORDER-RIGHT-WIDTH:0px;" height="581" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_thumb_2.png" width="820" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 3: &lt;/strong&gt;&lt;b&gt;Disk throughput and latency during backup compression&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Notice that near the intersection of the black straight lines there is a leveling off in the throughput (Disk Read Bytes/sec counter), while the latency (Avg. Disk sec/Read counter) continues to increase. This indicates a bottleneck on the I/O resources. &lt;/p&gt;
&lt;p&gt;Ultimately, in our tests with a real output device this was the throughput we achieved, which means the bottleneck was on the I/O performance of our input devices. &lt;/p&gt;
&lt;h3&gt;Considerations for Tuning Backup Performance &lt;/h3&gt;
&lt;p&gt;Several considerations come into play when you attempt to increase the performance of compressed backup operations. The goal of our testing was to determine the highest throughput obtainable with the simplest configuration. Performance of backup operations in SQL Server is influenced by the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Database disk volume and backup device layout &lt;/li&gt;
&lt;li&gt;Size of I/Os and number of outstanding I/O requests &lt;/li&gt;
&lt;li&gt;Hardware configuration&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;&lt;strong&gt;Database Volume and Backup Device Layout&lt;/strong&gt; &lt;/h4&gt;
&lt;p&gt;Database volume and the device layout have an impact on backup performance, irrespective of whether the backup is compressed. For backup operations, there is a single reader thread per database volume (drive letter or mount point volume), and a single writer thread per backup device.&lt;strong&gt; &lt;/strong&gt;Figure 4 illustrates the performance differences of backup compression between the following configurations. In this article, a backup device is synonymous with a file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Single backup volume (M) with a single backup device &lt;/li&gt;
&lt;li&gt;Single backup volume (M) with four backup devices &lt;/li&gt;
&lt;li&gt;Four backup volumes (P, Q, R, and S) with four backup devices&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_8.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;WIDTH:614px;HEIGHT:468px;BORDER-RIGHT-WIDTH:0px;" height="610" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_thumb_3.png" width="851" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 4: Backup compression performance versus number of backup devices&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Figure 4, BC refers to BUFFERCOUNT and MTS refers to MAXTRANSFERSIZE. These settings are discussed in more detail later in this document. &lt;/p&gt;
&lt;p&gt;As shown in Figure 4, having multiple backup devices improves backup performance. We observed very slight improvement by having the multiple backup devices on separate volumes. This is likely because our test was bound by read throughput as illustrated in Figure 3. &lt;/p&gt;
&lt;p&gt;BUFFERCOUNT and MAXTRANSFERSIZE were left at the default values for the test results in Figure 4. By default we observed MAXTRANSFERSIZE to be an average of 512 KB, and BUFFERCOUNT was 13 and 28 for 1 device and 4 devices respectively. SQL Server determines the default setting for BUFFERCOUNT based on the number of reader volumes and output devices. Using multiple backup devices results in an implicit increase in the BUFFERCOUNT value. &lt;/p&gt;
&lt;p&gt;The increase in BUFFERCOUNT, in addition to the increased number of threads writing to the backup files explains why the performance of multiple devices on a single volume increases (described more later). Results using other values are shown later in Figure 6. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_10.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;WIDTH:614px;HEIGHT:373px;BORDER-RIGHT-WIDTH:0px;" height="524" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_thumb_4.png" width="867" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 5: Parallelism influence on CPU utilization &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The number of threads used for compression operations is dynamically determined and comes from the SQLOS thread pool. In our case, having either 1) increased BUFFERCOUNT with a single output device, or 2) multiple output devices, resulted in greater throughput and more concurrent compression operations. As shown in Figure 5, either of these increased parallelism and overall CPU usage across all CPUs in our server. A greater number of backup devices improves backup performance. However, it adds a management complexity. You have now multiplied the number of backup files to track. If you lose one of these files, the entire backup is useless.&lt;/p&gt;
&lt;p&gt;Using backup compression results in higher CPU utilization when compared to uncompressed backups; this is due to the compression of the data. This cost is generally offset by the benefits of backup compression discussed earlier in this paper.&lt;/p&gt;
&lt;p&gt;For backups that are executed concurrently with user workload, reducing the number of backup devices or BUFFERCOUNT may reduce the overall CPU used by the backup operation, leaving more CPU resources for the workload. This trade-off can be made to accommodate scenarios where CPU is a constrained resource that must be preserved for user workload. &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Size of the I/Os and the Number of Buffers Used by Backup&lt;/strong&gt; &lt;/h4&gt;
&lt;p&gt;In some scenarios, tuning the size of the I/O issued by backup / restore operations as well as the number of internal buffers used for the transfer of data may help increase throughput independently of the underlying volume / device layout. These are controlled by the MAXTRANSFERSIZE and BUFFERCOUNT options of the backup and restore commands. When tuning these, keep in mind the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Memory used for backup buffers comes from virtual address space, which resides outside the buffer pool. The potential amount of memory used for these operations is equal to MAXTRANSFERSIZE * BUFFERCOUNT. Care should be taken on 32-bit systems because specifying values for these settings that are too high may result in out-of-memory errors since there is a limited amount of virtual address space available for this. On 32-bit systems, the default amount of virtual address space outside of the buffer pool is 256 MB. &lt;/li&gt;
&lt;li&gt;Choosing an initial value for BUFFERCOUNT can be difficult if you do not know the default value. This default value is dynamic and determined by SQL Server at run time. The default value is influenced by the number of backup devices and the number of database volumes. Testing is necessary to determine an optimal value. Running with trace flags 3605 &amp;amp; 3213 will result in output to the ERRORLOG containing the number of buffers used for backup operations. &lt;/li&gt;
&lt;li&gt;With the exception of very small databases and &lt;a href="http://msdn2.microsoft.com/en-us/library/ms189548.aspx"&gt;snapshot backups&lt;/a&gt; of VLDB using VDI technologies, the default MAXTRANSFERSIZE is 1 MB. &lt;br /&gt;&lt;b&gt;Note&lt;/b&gt;: Snapshot backups taken by using VDI integrated storage solutions cannot use backup compression. &lt;/li&gt;
&lt;li&gt;I/O size issued for backup / restore operations ranges from 64 KB up to MAXTRANSFERSIZE, based on the allocation of data within a data file. MAXTRANSFERSIZE refers to the size of the I/O operation issued to read data from the database files. Only contiguous regions of data on the disk are read. The continuity of the underlying data pages has an impact on the size of the I/Os. Therefore, the actual I/O size you observe may be less than the value of MAXTRANSFERSIZE specified. The default value for MAXTRANSFERSIZE is 1 MB. &lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Figure 6 extends the data in Figure 4 by including tuning of MAXTRANSFERSIZE and BUFFERCOUNT. Figure 6 shows backup time and CPU utilization for six different configurations. As illustrated in Figure 6, throughput comparable to that attained by using multiple devices can be achieved when using a single device on a single LUN by adjusting the MAXTRANSFERSIZE and BUFFERCOUNT parameters. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_12.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;WIDTH:605px;HEIGHT:499px;BORDER-RIGHT-WIDTH:0px;" height="754" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_thumb_5.png" width="874" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 6: Backup time and CPU utilization (average for all CPU’s) versus device/volume configuration, MAXTRANSFERSIZE and BUFFERCOUNT &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Although tuning MAXTRANSFERSIZE may result in slightly higher throughput, it also results in much larger I/O sizes. Larger I/O sizes of the backup operation when mixed with a concurrent OLTP workload may result in slower overall I/O response times. The recommended tuning approach is to adjust BUFFERCOUNT first, and then determine if tuning MAXTRANSFERSIZE will provide any additional performance advantage. Keep in mind when tuning this parameter that increasing the value may increase the size of the I/O with limited increase in overall throughput. Using multiple output devices as opposed to tuning these parameters may be a simpler approach to achieving greater throughput. However, this also may introduce the additional management overhead of having to maintain multiple backup files. Due to time constraints, we did not test all configurations in our scenario.&lt;/p&gt;
&lt;p&gt;Figures 7 shows the read and write throughput attained during these tests. The write throughput is less than the read throughput because of compression.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_14.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;WIDTH:607px;HEIGHT:528px;BORDER-RIGHT-WIDTH:0px;" height="741" alt="image" src="http://sqlcat.com/blogs/technicalnotes/WindowsLiveWriter/TuningthePerformanceofBackupCompressioni_B17D/image_thumb_6.png" width="881" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Figure 7: Read and write throughput during backup operations &lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Hardware Configuration&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Backup compression operations are parallelized dynamically up to the number of CPUs on the machine so there is a potential performance benefit to a machine with more physical CPUs. Similarly, the physical characteristics of the I/O configuration including the number of disks, cache memory available for I/O operations, and the throughput attainable on the I/O path, have a significant effect on performance. I/O operations related to backup / restore may ultimately be bound by the limits of the hardware. It is important to understand the potential throughput of your specific configuration in order to know when you are exhausting the capabilities of the hardware.&lt;/p&gt;
&lt;h3&gt;Recommendations&lt;/h3&gt;
&lt;p&gt;This article provides a good amount of detail into the internals of backup compression. A summary of our recommendations for tuning backup compression and restore are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the method of backing up to NUL to determine the potential throughput attainable on your particular configuration. &lt;/li&gt;
&lt;li&gt;Performance of backup operations may be increased by utilizing multiple backup devices and/or increasing BUFFERCOUNT. Using multiple devices over a single device with increased BUFFERCOUNT may offer slight additional benefit; however, use of a single device with increased BUFFERCOUNT may provide nearly the same throughput without the need to manage multiple backup files. &lt;/li&gt;
&lt;li&gt;Keep in mind that adjusting backup parameters to increase the performance of backup may have adverse impact to user workload running on the system. Always consider what is best for your particular scenario. &lt;/li&gt;
&lt;li&gt;MAXTRANSFERSIZE should be considered a secondary tuning approach. In our tests this provided little practical benefit over the default used by BACKUP &lt;/li&gt;
&lt;li&gt;Consider the parallelism benefits of volume design on backup / restore operations at database creation time. This is one of the many things to consider when determining how many volumes to use for a SQL Server database. &lt;/li&gt;
&lt;li&gt;Monitor your I/O and CPU utilization during tests to ensure that any performance bottlenecks you encounter are not hardware related. &lt;/li&gt;
&lt;li&gt;Be careful while increasing the value of the BUFFERCOUNT parameter on 32-bit systems because specifying too high values for this may result in out-of-memory errors, since there is a limited amount of virtual address space available for this. On 32-bit systems, the default amount of virtual address space outside of the buffer pool is 256 MB.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Keep in mind that the results described here indicate the performance that is attainable in one specific configuration. Performance may be much higher or lower in different configurations. As an additional data point, &lt;a href="http://blogs.msdn.com/sqlcat/archive/2008/03/02/backup-more-than-1gb-per-second-using-sql2008-backup-compression.aspx"&gt;Backup More Than 1GB per Second Using SQL2008 Backup Compression&lt;/a&gt; on the SQLCAT blog illustrates the performance attainable on very high-end systems. &lt;/p&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;There are many approaches to tuning the performance of backup in SQL Server 2008. Understanding how volume and device layout, and number of CPUs influence parallelism, as well as understanding other tuning options can provide you with the ability to significantly increase the performance of backup and restore. The decisions on which approach to use depend largely on what is optimal for your given environment.&lt;/p&gt;
&lt;h3&gt;Appendix A: Test Hardware and Software&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Server&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;DELL PowerEdge 6950&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4 socket dual core &lt;/li&gt;
&lt;li&gt;AMD Opteron 2.8 GHz&lt;/li&gt;
&lt;li&gt;x64&lt;/li&gt;
&lt;li&gt;32 GB RAM&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;EMC Clariion CX700&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10K SCSI drives &lt;/li&gt;
&lt;li&gt;4 GB cache (80% write, 20% read) &lt;/li&gt;
&lt;li&gt;2 HBA’s&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;&lt;strong&gt;Software&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Windows Server 2003 Enterprise Edition Service Pack 2 x64&lt;/li&gt;
&lt;li&gt;SQL Server 2008 February CTP x64&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=275" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/technicalnotes/archive/tags/Database/default.aspx">Database</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Availability/default.aspx">Availability</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Performance/default.aspx">Performance</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/I_2F00_O/default.aspx">I/O</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/backup/default.aspx">backup</category><category domain="http://sqlcat.com/technicalnotes/archive/tags/Backup+Compression/default.aspx">Backup Compression</category></item><item><title>Troubleshooting SQL Server 2005/2008 Performance and Scalability Flowchart</title><link>http://sqlcat.com/presentations/archive/2008/04/18/troubleshooting-sql-server-2005-2008-performance-and-scalability-flowchart.aspx</link><pubDate>Fri, 18 Apr 2008 23:21:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:272</guid><dc:creator>SanjayMishra</dc:creator><slash:comments>5</slash:comments><description>&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Author: Sharon Bjeletich&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The following flowchart will address the majority of the most common performance and scalability issues that can arise in SQL Server-based applications.&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://sqlcat.com/files/folders/280/download.aspx"&gt;http://sqlcat.com/files/folders/280/download.aspx&lt;/a&gt;&lt;a href="http://sqlcat.com/files/folders/271/download.aspx"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;However, working through the flowchart is also recommended for applications that do not appear to have issues in those areas, as it will set a baseline for a system with a known performance and scalability characteristic.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;The flowchart is designed to be worked from the top down, left to right.&amp;nbsp; It addresses the most impactful issues first, such as table scans, out of date statistics, etc.&amp;nbsp;and the suggested readings are considered the basics for any DBA.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:#1f497d;"&gt;&lt;font face="Calibri" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;span style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;"&gt;Please note that to be able to accurately use this flow chart you should put your system under load, and it should only be done in a test environment.&amp;nbsp;&amp;nbsp;&lt;span style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;"&gt;For more information on how to load test SQL Server see Visual Studio Team System documentation.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;"&gt;&lt;span style="FONT-SIZE:11pt;COLOR:#1f497d;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:Calibri;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;mso-fareast-theme-font:minor-latin;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=272" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/presentations/archive/tags/SQLCAT/default.aspx">SQLCAT</category><category domain="http://sqlcat.com/presentations/archive/tags/Performance/default.aspx">Performance</category><category domain="http://sqlcat.com/presentations/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://sqlcat.com/presentations/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://sqlcat.com/presentations/archive/tags/Query+Performance/default.aspx">Query Performance</category><category domain="http://sqlcat.com/presentations/archive/tags/Database/default.aspx">Database</category><category domain="http://sqlcat.com/presentations/archive/tags/Design/default.aspx">Design</category></item><item><title>A Look Inside SQLCAT (Customer Advisory Team)</title><link>http://sqlcat.com/presentations/archive/2008/04/18/a-look-inside-sqlcat-customer-advisory-team.aspx</link><pubDate>Fri, 18 Apr 2008 22:10:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:269</guid><dc:creator>denny.lee</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;On this episode of TechNet Radio, we learn more about SQL CAT (Customer Advisory Team).&amp;nbsp; With the launch of Microsoft SQL 2008 on the way, the SQL CAT team has been working hard preparing lists of best practices, recommendations, technical white papers and technical end-to-end case studies on customer implementations.&lt;/p&gt;
&lt;p&gt;You can download the interviews here: &lt;a class="" href="http://download.microsoft.com/download/6/7/6/676CED5F-933B-431B-A86F-6A1BF0959167/TechNetRadio03252008-web.wma" target="_blank"&gt;WMA&lt;/a&gt; | &lt;a class="" href="http://download.microsoft.com/download/6/7/6/676CED5F-933B-431B-A86F-6A1BF0959167/TechNetRadio03252008-hi-web.mp3" target="_blank"&gt;MP3 Hi&lt;/a&gt; | &lt;a class="" href="http://download.microsoft.com/download/6/7/6/676CED5F-933B-431B-A86F-6A1BF0959167/TechNetRadio03252008-lo-web.mp3" target="_blank"&gt;MP3 Low&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=269" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/presentations/archive/tags/SQLCAT/default.aspx">SQLCAT</category></item><item><title>Technet Radio Interview with Mark Souza</title><link>http://sqlcat.com/presentations/archive/2008/04/18/technet-radio-interview-with-mark-souza.aspx</link><pubDate>Fri, 18 Apr 2008 17:43:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:268</guid><dc:creator>denny.lee</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;A Look at TechNet Edge&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On this episode of TechNet Radio, we get the scoop on the new forum for IT Pros – TechNet Edge.&amp;nbsp; We also feature highlights from the recent Vista SP1 Roundtable hosted by Mark Russinovich.&amp;nbsp; Plus, we have a conversation with Mark Souza from SQL CAT (Customer Advisory Team).&amp;nbsp; &lt;/p&gt;
&lt;p&gt;You can download the interviews here: &lt;a class="" href="http://download.microsoft.com/download/a/f/9/af926c8c-3b02-412b-8367-822f9a2e551a/TechNetRadio03182008-web.wma" target="_blank"&gt;WMA&lt;/a&gt; | &lt;a class="" href="http://download.microsoft.com/download/a/f/9/af926c8c-3b02-412b-8367-822f9a2e551a/TechNetRadio03182008-hi-web.mp3" target="_blank"&gt;MP3 Hi&lt;/a&gt; | &lt;a class="" href="http://download.microsoft.com/download/a/f/9/af926c8c-3b02-412b-8367-822f9a2e551a/TechNetRadio03182008-lo-web.mp3" target="_blank"&gt;MP3 Low&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=268" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/presentations/archive/tags/SQLCAT/default.aspx">SQLCAT</category></item><item><title>Data Mining applied to medical research</title><link>http://sqlcat.com/presentations/archive/2008/04/18/data-mining-applied-to-medical-research.aspx</link><pubDate>Fri, 18 Apr 2008 17:36:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:267</guid><dc:creator>denny.lee</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;During the PASS 2007 Community summit in Denver, Zach Owens had interviewed Denny Lee from the SQL CAT team to discuss data mining tools and techniques being applied to academic research conducted on Asthma patients.&amp;nbsp; For more information, check out the &lt;a class="" href="http://channel8.msdn.com/Posts/Denny-Lee-from-SQL-CAT-Data-Mining-applied-to-medical-research/" target="_blank"&gt;webcast&lt;/a&gt; on Channel 8.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=267" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/presentations/archive/tags/Data+Mining/default.aspx">Data Mining</category></item><item><title>Analysis Services Distinct Count Optimization</title><link>http://sqlcat.com/whitepapers/archive/2008/04/17/analysis-services-distinct-count-optimization.aspx</link><pubDate>Thu, 17 Apr 2008 21:40:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:266</guid><dc:creator>denny.lee</dc:creator><slash:comments>0</slash:comments><description>&lt;div class="BlogPostContent"&gt;
&lt;p&gt;&lt;em&gt;SQL Server Best Practices Article&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Published&lt;/strong&gt;:&amp;nbsp;April 17,&amp;nbsp;2008&lt;br /&gt;&lt;strong&gt;Writer:&amp;nbsp;&lt;/strong&gt;Denny Lee&lt;br /&gt;&lt;strong&gt;Contributors: &lt;/strong&gt;Richard Tkachuk, Akshai Mirchandani, Sasha (Alexander) Berger, Thomas Kejser, Stuart Ozer&lt;br /&gt;&lt;strong&gt;Technical Reviewers:&lt;/strong&gt; Steve Pontello, Lindsey Allen, Lubor Kollar, Nicholas Dritsas, Ricardo Silva, Dave Wickert, Anne Zorner&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Applies To&lt;/strong&gt;: SQL Server 2005 SP2&lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; The tests in this white paper were performed using SQL Server 2005 SP2; however, they also apply to SQL Server 2008.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Distinct count (such as unique visitor counts on a Web site) calculations provide valuable information but come with a number of performance challenges. This white paper describes tests that were performed to determine how best to optimize these calculations and includes best practices based on the test results.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;For more information, please refer to the &lt;a class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=65df6ebf-9d1c-405f-84b1-08f492af52dd&amp;amp;displaylang=en" target="_blank"&gt;Analysis Services Distinct Count Optimization&lt;/a&gt; whitepaper.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://sqlcat.com/aggbug.aspx?PostID=266" width="1" height="1"&gt;</description><category domain="http://sqlcat.com/whitepapers/archive/tags/Analysis+Services/default.aspx">Analysis Services</category><category domain="http://sqlcat.com/whitepapers/archive/tags/Distinct+Count/default.aspx">Distinct Count</category></item><item><title>Resolving scheduler contention for concurrent BULK INSERT</title><link>http://sqlcat.com/technicalnotes/archive/2008/04/09/resolving-scheduler-contention-for-concurrent-bulk-insert.aspx</link><pubDate>Wed, 09 Apr 2008 15:05:00 GMT</pubDate><guid isPermaLink="false">e9619797-5f48-4d02-a1a8-7f300d09be66:265</guid><dc:creator>tkejser</dc:creator><slash:comments>0</slash:comments><description>&lt;h2&gt;&lt;span style="FONT-SIZE:10pt;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;&lt;span style="FONT-SIZE:10pt;"&gt;Author: Thomas Kejser&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;&lt;span style="FONT-SIZE:10pt;"&gt;Reviewers: Stuart Ozer, Kun Cheng, Lindsey Allen, Mike Ruthruff and Mark Souza, Prem Mehra, Alex Verbidski&lt;br /&gt;&lt;/h2&gt;&lt;/span&gt;
&lt;h2&gt;&lt;span&gt;
&lt;h1 style="MARGIN:24pt 0cm 0pt;"&gt;&lt;span&gt;&lt;font face="Cambria" color="#365f91" size="5"&gt;Background information&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;As you may be aware, SQL Server, through SQLOS, implements its own scheduling mechanism on top of the Windows operating system. This is done to spend the maximum amount of CPU time in user mode by using yielding instead of preemptive scheduling. Also, SQLOS can exercise very fine control over the threads by providing an abstraction&lt;span style="COLOR:#1f497d;"&gt; &lt;/span&gt;on top of Windows threads.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Central to the SQLOS scheduling mechanism is the &lt;b&gt;scheduler&lt;/b&gt; object. A SQLOS scheduler is an abstraction of a CPU or, in the case of multi-core machines, a CPU-core. Schedulers are grouped into &lt;b&gt;nodes&lt;/b&gt;; a node corresponds either to the hardware NUMA nodes on the host machine or to the soft NUMA configuration of SQL Server. For example, an 8 CPU dual core machine with 2 hardware NUMA nodes and no soft NUMA configured has 2 nodes with 8 schedulers in each node.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You can view the SQLOS schedulers and nodes by using the DMV &lt;b&gt;sys.dm_os_schedulers&lt;/b&gt;. Notice that there are some extra, special schedulers in this DMV; these are for SQL Server internal use. Also, you will see the dedicated admin connection (DAC) scheduler here (&lt;b style="mso-bidi-font-weight:normal;"&gt;scheduler_id&lt;/b&gt; = 255). The schedulers that do