SQL Server Business Intelligence on HP ProLiant DL785 Server

By Ajay Goyal Scalability Experts, Inc. www.scalabilityexperts.com

Mike Fitzner Hewlett Packard www.hp.com

copyright. with all applicable copyright laws is the responsibility of the user. trademarks. electronic or mechanical. Windows. SQL Server Business Intelligence on HP ProLiant DL785 Server -2- . patent applications. While recommendations are listed in an itemized format. Windows 2008. Other product and company names mentioned herein may be trademarks of their respective owners. Scalability Experts Inc. Complying. for any purpose. or other intellectual property rights covering subject matter in this document. however.. Windows NT. may have patents. Inc. they should not be considered standalone. your only means of access is electronic. trademarks. © Copyright 2008 by Scalability Experts Inc. the furnishing of this document does not give you any license to these patents. All rights reserved. MS-DOS. Information in this document is subject to change without notice. permission to print one copy is hereby granted. copyright.Recommendations presented in this document should be thoroughly tested before being implemented in a production environment. If. or intellectual property. All recommendations have dependencies and implementation of any recommendation in isolation can be detrimental to performance. No part of this document may be reproduced or transmitted in any form or by any means. without the express written permission of Scalability Experts Inc. except as expressly provided in any written license agreement from Scalability Experts Inc. SQL Server 2008 are either registered trademarks or trademarks of Microsoft corporation in the USA and /or other countries. Scalability Experts. Microsoft BackOffice.

.................Contents Introduction .................................................................... SQL Server Business Intelligence on HP ProLiant DL785 Server -3- ........................................................................................................... 8    Upgrade to SQL Server 2008 Analysis Services .............................................................................................................................................................................. 16 Scalability Experts...................................................................................................................................... 4 Software and data Specifications................................... 7 Best Practices for Cube Processing ....................................... 5 Fact Table Sizes .......................................................................................................................................................................................... 6 Cube Processing ............................................................................................................ 5 Server Specifications ..................................................................... 6 SSAS Configuration settings used ............................. 8 Optimizing data retrieval from Relational Source ................................................ Inc..................................................................................................................................................................................... 6 SQL Server Configuration settings used .................................................................................................................................. 8 Optimizing Aggregation and indexing performance ........................................................................................................................................................................................... 9 Conclusion ....................................... 6 System Diagram ................................................. 4 Executive Summary.....................................

hardware and software. larger servers offering performances not seen on previous versions of SQL Server. From our tests. it was proved that SQL Server 2008 can scale very well on HP ProLiant DL785 servers and it is possible to run highly optimized and fast data warehousing solutions on HP ProLiant line of servers. The test database was a real data structure containing web traffic data. 11 PCI-e I/O Slots or an optional I/O backplane with 7 PCI-e & 2 HTx I/O slots. This makes it an ideal server for data warehousing and consolidation. Executive Summary SQL Server 2008 has seen improvements at the engine level to better utilize large servers and improve scalability. With SQL Server 2008 and Analysis Services running on the same server. With consolidation being considered by many organizations. we could process 11 Billion rows in about 3:12 hrs. This gave us a throughput of about 1.Introduction SQL Server 2008 has enabled us to create Business Intelligence applications to large multi terabyte size data warehouses. It was used to identify download trends. to get the best performance on a 1+ TB data warehouse. 512 GB of memory. regions and other data that was used to optimize the website response times and auditing and was 1. This whitepaper discusses about the best practices learned during our tests to configure SQL Server 2008 Analysis Services on HP ProLiant DL785. we can load 1 billion rows in about 17 minutes. and another with 150 partitions per measure group. The cube consisted of four measure groups and we tested with two scenarios: one with 15 partitions per measure group. We could easily see the improved engine at work with 48% improvement in processing times.26 TB in size while the SQL Server 2008 Analysis Services Cube was 443 GB. This whitepaper discusses our findings and challenges from sharing the server between the two services and how we configured both. At this rate. Some of the new features and architecture improvements have been specifically targeted to scale SQL Server deployments on newer. the HP ProLiant DL 785 server proved to be an ideal platform for hosting SQL Server 2008 relational engine and Analysis Services on the same server. improving the performance of cube processing and user queries. SQL Server Business Intelligence on HP ProLiant DL785 Server -4- . For our testing we started with SQL Server 2005 with default settings and compared it with SQL Server 2008 with similar settings. Inc. These best practices help in maximum utilization of given server resources. HP ProLiant DL 785 G5 servers can scale up to 8 Sockets with Quad Core 8300 series Opteron processors from AMD with HyperTransport (HT). Scalability Experts.15 million rows per second.

26 Terabyte 443 GB 4 (with 15 and 150 partitions each) SQL Server 2008 – 60 GB Analysis Services – 54 GB SQL Server 2008 – All Processors Analysis Services – All Processors Fact Table Sizes Fact Table Number of Rows Table Size (Billions) (GB) FactDownloadEvent 5.301 Scalability Experts.6 450 FactDetectionEvent 2. Test Item Upgrade to SQL Server 2008 Partition your cube Results 48% improvement over SSAS 2005 19% improvement with more.0 621 FactInstallEvent 3.4 222 FactSiteErrorEvent 0.2 1. smaller partitions (increased from 15 partitions to 150 partitions) 12% improvement in SSAS 2008 compared to not Pre-allocating memory 25% improvement over the default values 1.2 8 11.Here is the summary of the performance improvements achieved during our tests.15 million rows per second PreAllocate memory for SSAS AggregationMemoryLimitMin and AggregationMemoryLimitMax Throughput achieved Software and data Specifications Operating System Database Data size Cube Size Measure Groups Max Memory Set Processor Affinity Microsoft Windows Server 2008 Enterprise Edition SQL Server 2008 SP1 SQL Server 2008 Analysis Services SP1 1. Inc. SQL Server Business Intelligence on HP ProLiant DL785 Server -5- .

SQL Server Business Intelligence on HP ProLiant DL785 Server -6- .Server Specifications Server HP ProLiant DL 785 G5 Processor 8 x Quad Core AMD 8300 series Opteron 2.9 Ghz 128 GB Memory 8 x P800 SAS Controllers 8 x P800 SAS Controllers Windows Server 2008 Enterprise Edition SQL Server 2008 Enterprise Edition SQL Server 2008 Analysis Services SSAS Configuration settings used Parameter Optimized Value CoordinatorExecutionMode -8 Memory\LowMemoryLimit 70 OLAP\Process\AggregationMemoryLimitMin 1 OLAP\Process\AggregationMemoryLimitMax 5 OLAP\Process\DatabaseConnectionPoolMax 64 ThreadPool\Process\MaxThreads 320 PreAllocate 20 Original Value -4 75 10 80 50 64 0 SQL Server Configuration settings used Scalability Experts. Inc.9 GHz processors Memory Storage 128 GB 48 disks on SAS controller – 15K RPM RAID 10 System Diagram HP ProLiant DL 785 G5 MSA 70 24 Disks 15K RPM RAID 10 Sequential Throughput 9 Gb/s MSA 70 24 Disks 15K RPM RAID 10 8 x Quad Core AMD Opteron 2.

Since many companies already have existing cubes. Best practices for cube processing involve optimizing the cube design. SQL Server Business Intelligence on HP ProLiant DL785 Server -7- . Analysis Services settings and hardware configuration.87 GB Measure Groups Partitions per Measure group Total partitions in cube Partition Size (largest) Scalability Experts. we wanted to minimize changes to the test cube while optimizing the hardware and Analysis Services configuration to maximize cube processing on HP ProLiant DL 785 server. Writing data to the files. The cube was configured as MOLAP storage to optimize query performance. Cube processing involves three main stages: 1. we tested two versions of the cube altering only the number of partitions: Cube v1 4 15 60 28 GB Cube v2 4 150 600 2. Cube Processing For this whitepaper we focus on improving cube processing times. Inc.Parameter Optimized Original Value Value MaxDOP 8 0 MaxMem 64 GB All MaxWorkerThreads 960 0 CPU Affinity All All Note: Setting CPU Affinity did not affect the performance of cube processing. Because we wanted to keep cube changes to the minimum. Building aggregations and indexes 3. Reading data from the relational source 2.

o Scalability Experts.  Optimizing data retrieval from Relational Source Performance of cube processing directly depends on how fast Analysis Services can retrieve data from the relational source. Analysis services can use shared memory access to connect to SQL Server. while also providing better fault tolerance. To optimize these queries. RAID 1+0 ensures better response time than RAID 5. This can improve performance substantially if a dimension has many millions of members. o Optimize I/O response time Optimize I/O Performance by spreading SQL Server database and cube file on multiple spindles. When the relational source and Analysis Services are on different servers. Target long-running queries for large data warehouses and add every suggested index to the table. RAID 1+0 is a better option as we need to write large amounts of data while processing cube. This is only limited by Physical I/O and CPU availability. Dimension tables are not as frequently updated as fact tables and so we can afford to have more indexes on these tables without affecting inserts or updates. Inc. An advantage of consolidation is that since both services are running on the same operating system. use the Database Engine Tuning Advisor on a Profiler trace of a Dimension query.Best Practices for Cube Processing These are some of the best practices that were learned from the tests. Optimize source SQL queries Dimension processing can create a large number of queries to the source relational table based on the number of attributes for each dimension.  Upgrade to SQL Server 2008 Analysis Services When processing the cubes on both SQL Server 2005 and SQL Server 2008. Processing Time Improvement One Measure Group SQL Server 2005 2:37:07 SQL Server 2008 1:22:26 48% SQL Server 2008 Analysis Services processing engine has been much improved for parallelism and memory allocations. we saw an immediate improvement in processing times without any changes to the cubes. While RAID 5 provides better space utilization. SQL Server Business Intelligence on HP ProLiant DL785 Server -8- . We configured both versions similarly. network connectivity and traffic play an important role in determining the throughput of data retrieval. providing for best throughput available. We had the Cube spread out on a LUN with 20 disks configured with RAID 1+0.

aggregating on one partition. In a consolidated environment like used in this test and large data warehouses. the default setting will result in too many threads that result in processor contention. Inc.microsoft. the processing may be at different stages.http://technet. while creating indexes on other. Analysis services starts aggregating and indexing data sooner if it has enough data on hand for some partitions. When processing the cube. This section discusses some of the settings that showed substantial improvement in cube processing times. On a large data warehouse. Having multiple partitions for each measure group ensures that Analysis Services can process multiple partitions in parallel. At the same time. It is also possible to override this and manually specify the maximum number of tasks Analysis services should perform in parallel. Aim to have less than 2. The default settings present when Analysis Services is installed is sufficient for small to medium sized data warehouses and when Analysis Services is the only service running on the server. 1 Analysis Services Query Performance Top 10 Best Practices . some of these settings need to be tweaked for maximum performance. avoid designing partitions that contain fewer than two million rows.  Optimizing Aggregation and indexing performance On a cube with multiple partitions. avoid using the default Let the server decide setting for parallelism. and having a small partition can result in too many partitions being created  Process partitions in parallel To get the most out of the hardware. independent of each other.com/enus/library/cc966527.  Keep partitions to fewer than a few thousand Having too many partitions will increase the cost of metadata operations.aspx Scalability Experts. Analysis Services creates multiple threads based on the number of partitions and processes each partition separately. o Use Partitions Partitions are required to introduce parallelism on a server like HP ProLiant DL785. To prevent this. The number of partitions Analysis Services processes in parallel depends on the number of logical processors available to the operating system. As it processes multiple partitions. SQL Server Business Intelligence on HP ProLiant DL785 Server -9- . process multiple partitions in parallel. Analysis Services may create more threads or use memory in a manner that can negatively affect the overall performance.0001 partitions for a measure group. fact tables can have 1+ billion rows.Remember not to use this approach for Fact tables as it will adversely affect the ETL bulk load performance on the Fact tables. Since the server is shared between SQL Server and Analysis Services.

Have enough physical memory installed to prevent temp file usage If the server does not have enough physical memory installed for processing aggregations. improving performance  With MaxParallel=Let the server decide setting. causing excessive context switching and affecting the performance. For example. context switching drops. the processors are shared between SQL Server and Analysis Services.10 - . Our test results are shown below. Max Parallel Tasks Processing Time Improvement 32 3:13:41 10% 64 3:35:38 57% Let the Server Decide 8:19:48 Figure 1: Setting correct MaxParallel ensures reduced context switching. This is because SQL Server has completed sending data to Analysis Services. SSAS will have to use temp files for processing. set the number of parallel tasks to 16. using the recommended value can create too many threads. This works great on a server that is dedicated to Analysis Services. we see that context switching drops after sometime. Inc. In such a case. SQL Server Business Intelligence on HP ProLiant DL785 Server .The recommended setting in other literature is twice the number of processors in the server. and with Analysis Services being the only active service. However on a consolidated server. Scalability Experts. This can increase the processing time. if the server has four dual-core processors installed.

always specify the Partition slice in the properties of each partition. This ensures maximum IOPS (I/Os per second) available for performing queries. At 150 partitions.33 million records each depending on the measure group. This is because Analysis services would now process even more partitions in parallel. For example. By increasing the number of partitions from 15 to 150. our partition sizes ranged from 1-3GB in size with 1 million . aim at 3 GB per partition.  Aggregation considerations for multiple partitions A large data warehouse typically contains historical records for a long period of time.  Use Query Binding and partition slicing Create a view on the fact table and use query binding in each cube partition with nolock hint. they are the most heavily queried partitions. As a rule. Scalability Experts. improving the processing time. Be sure to set the Preallocate value to ensure that Analysis Services has the required memory to handle multiple partitions. For even larger data warehouses. Ensure that the query defined for each partition is optimized for best execution plan. Spread partitions on multiple spindles. See section Preallocate memory for more information on Preallocating memory. ensure each LUN is spread across several disks. Analysis services may not always get it right resulting in expensive scans on partitions not containing the required data.11 - . This saves disk space and keeps the size of the cube smaller. Partition Sizing The general recommendation is to target 20 million rows or 250 MB per partition. When using SAN for storage. In addition. we see that the increased number of partitions allowed better memory management and parallelization of partition processing. this will result in too many partitions. Measure groups when partitioned on time. As shown in Figure 2. Inc. Experiment with partition sizes between 500 MB to 1 GB. With a large data warehouse. it is a best practice to ensure the underlying source table is also partitioned to gain optimal performance while retrieving data for cube performance. You can define more aggregations on these new partitions while decreasing the number of aggregations on older partitions. are a good candidates for having different aggregation design for different partitions of the same measure group. we saw a 19% improvement in processing time. SQL Server Business Intelligence on HP ProLiant DL785 Server . as new data is loaded into newer partitions.

Preallocate Value Processing Time Improvement 20 3:13:48 12% 0 3:39:24 Scalability Experts. It has most impact on Windows Server 2003 where processing time was reduced by up to 50% in testing. It is used to reserve memory for Analysis Services when the service is started. Microsoft has published that Windows Server 2008 has better memory management making the use of Preallocate optional. using Preallocate is beneficial to processing times.ini file. For servers where Analysis Services is used along with other services. A value of 20 indicates that 20% of the system memory will be pre-allocated to Analysis Services that will not be available to other processes. SQL Server Business Intelligence on HP ProLiant DL785 Server . Inc.12 - .Figure 2: More partitions enable parallelism o Preallocate memory Preallocate memory setting can be found in the msmdsrv. Analysis Service allocates and reserves this memory at the start of the service. Our tests have shown that even with improved memory management in Windows Server 2008. using Preallocate can provide for more stable memory configuration.

Windows Server 2003 and Memory Preallocation: Lessons Learned Figure 4: More time to read data can be due to stress on SQL Server (time is for a single measure group) Scalability Experts. reducing overheads and improving performance For more information on Preallocate setting. Inc.13 - .Figure 3: Preallocate prevents frequent memory allocations. SQL Server Business Intelligence on HP ProLiant DL785 Server . refer to this technical note:  Running Microsoft SQL Server 2008 Analysis Services on Windows Server 2008 vs.

This value is expressed as a percentage of total memory if the value is less than 100. This can be because the source server is stressed and taking more time to return the results. resulting in shorter overall processing time. Reducing AggregationMemoryLimitMax to 5. slowing down other tasks in the processing. The default value is 80. since Analysis Service is now processing more aggregations and indexes in parallel. This can be seen in the chart below where Analysis Services has more data to work in parallel from the beginning.  In the above chart. However. the overall processing time is reduced. SQL Server Business Intelligence on HP ProLiant DL785 Server . That said. which indicates that a maximum of 80% of the total physical memory can be used for SSAS aggregation processing. we now saw large temp file activity as Analysis services did not have enough memory available to hold aggregations in memory. We initially started with AggregationMemoryLimitMax=80. we saw a large drop in processing time because other processes were now not starved of memory and resulted in more evenly Scalability Experts. we see that having more partitions resulted in more time taken to read the data. Inc. Figure 5: More partitions enable SSAS to start working on partitions quickly  We should also note that we limited overall design changes choosing to test hardware upgrade results without re-designing the application as well.14 - . Even with temp file activity. or an absolute value of bytes if the value is greater than 100. It is likely that this is the contributing factor to taking longer to read the data.  OLAP\Process\AggregationMemoryLimitMax AggregationMemoryLimitMax is a server property that controls the maximum amount of memory that can be used for SSAS aggregation processing. With Preallocate set to 20. we saw that aggregations were quickly using excessive memory. we did re-partition the cube from the 15 to 150 partitions but we did not change the partition scheme of the relational database.

15 - .distributed workload with an improvement of 25% processing time. Figure 6: More consistent load resulting in faster processing times Figure 7: Aggregation values very high at the beginning. AggregationMemoryLimitMax value needs to be set based on the number of records in each partition. slowing other tasks Monitor the Proc Aggregations\Temp file rows written/sec performance monitor counter to determine temp file usage during processing. This is shown in the next two charts. Inc. Setting this Scalability Experts. SQL Server Business Intelligence on HP ProLiant DL785 Server .

services and IT infrastructure. The processing failed because now Analysis Services did not have enough memory to process each large partition.com/. while keeping changes to the cube design at the minimum. they do provide substantial performance improvements. also increase the value of Preallocate to ensure that other tasks do not starve for memory. Conclusion The tests showed that Microsoft SQL Server 2008 Enterprise Edition running on HP ProLiant DL 785 G5 provides a scalable.hp. providing high throughput while cube processing. When reducing the size of AggregationMemoryLimitMax. services and solutions that help people and businesses realize their full potential. Cube processing. SQL Server Business Intelligence on HP ProLiant DL785 Server . HP storage that we used provided high throughput rates. Scalability Experts. Follow the best practices discussed above on partition sizing. is also a critical process for many organizations that have very short processing windows or are processing cubes multiple times a day. If you do increase the value of AggregationMemoryLimitMax . being a very resource intensive operation. personal computing. Inc.value too low may result in temp file space getting too large. More information about HP (NYSE: HPQ) is available at http://www. providing for good disk I/O performance. In that case try increasing this value incrementally until Proc Aggregations\Temp file rows written/sec shows a more reasonable value. Cube processing performance also proves to be a good stress test for the server. Microsoft (Nasdaq “MSFT”) is the worldwide leader in software. we had each partition at about 28 GB in size. About HP HP. simplifies the technology experience for consumers and businesses with a portfolio that spans printing. care should be taken with the size of each partition. the world’s largest technology company.16 - . With 15 partitions per measure group. high performance solution for deploying large scale BI solutions. HP ProLiant DL785 was also able to prove itself as an ideal platform for consolidating both. SQL Server and Analysis Services on the same server. software. About Microsoft Founded in 1975. Consolidating SQL Server 2008 and Analysis Services also requires managing memory allocation to prevent internal contentions. SQL Server 2008 scales effectively to use multiple processors installed on the server. While the best practices discussed above are not exhaustive.

consulting and training that help mid-to-large-scale enterprises drive business performance with improved decision making and operational efficiencies. Scalability Experts. With recognized expertise and proven methodologies. Scalability Experts delivers solutions-based services.About Scalability Experts Scalability Experts is a leader in data management and business intelligence for complex data platforms. SQL Server Business Intelligence on HP ProLiant DL785 Server . Inc.17 - .