Top 10 SQL Server Performance Tuning Tips

Tune your SQL Server environment for peak performance

SQL Server is a very complex product. And when it comes to performance tuning, many DBAs simply don't know where to start. There many facets to the program and many things to consider if you are to correctly tune a SQL Server instance. Performance tuning is definitely one of those areas in which experience is the best teacher. Well you need to start somewhere. And, as is common to many things, it all starts by having a good foundation to build upon. Related: Beginning Performance ...

Buy This Project Plan Now!

This content is part of the Migrating to SQL Server 2008 & 2008 R2 Project Plan.

Purchase this project plan to receive:

  • Step-by-step guidance for managing your project, start to finish
  • Tested advice for preparing for and completing your project
  • Insights to help you avoid common pitfalls and traps

Already registered? here

Discuss this Article 10

Fraz_1
on Jan 10, 2011
This is a wonderful article on performance tuning.
Stueyd
on Jan 19, 2011
I have always seperated logs, data & tempdb with a typical small server config being 3 sets of 2 x 300Gb disks as RAID1+0.
However I recently had the opportunity to perform some disk testing and just for the hell of it created one big logical disk from 6 x 300Gb RAID1+0 and put everything on this one disk.
A 150Gb OLTP database was restored and a number of tests were performed such as backups, restores, update stats, index rebuilds, DBCC, data inserts & deletes and a number of overnight reports, some of which are heavy users of tempdb.
I was quite suprised to find that everything ran significantly faster with everything all on the one big disk (eg: DBCC was over 30 mins quicker). The only exception being the reports which were heavy users of tempdb and these were just a few seconds slower than when using seperate disks.
I'm not in a position to simulate real user activity but from the above tests it looks like the benefit of having ALL the data spread over 6 disk spindles (rather than seperated and over just 2 spindles for each) cancels any negative effects of the data, logs & tempdb all being together.

ceusee
on Jan 18, 2011
good article
gunneyk
on Jan 12, 2011
Franklin, the link should be fixed soon. Thanks for pointing that out.
fabiano.morais
on Oct 15, 2012
Certainly this is a great article. Thanks! I have only one point to request: The url of de Listing 1 code is broken. Is it possible to correct the website link? Thanks again!
ggonzalez
on Mar 11, 2011
Great article! You covered some key areas that frequently get missed, any one of which could be "the problem". Also nice to see the Waits & Queues whitepaper reference at top... sometimes I think people overlook it because is says 2005 -- big mistake!
lifted326
on Jan 11, 2011
Andrew: Would you ask someone to put a colon after "http" in the link to listing 1? Thanks
cbragdon
on Mar 10, 2011
Great article, thanks for the insight
gunneyk
on Jan 22, 2011
Davison as always it depends :). But if you only have 6 disks to work with for all things then you may indeed be better off with everything on 1 array vs. 2 or 3 smaller ones. But this is more true as the number of spindles increases. However the more log activity you do the more likely you will see benefit by separating the log files. With only 6 disks and just 150GB db it probably wont matter too much either way. Hopefully you have enough Memory to keep the most active part of the db in cache and negate the physical IO from the data reads. This wont always work out as the data sets get larger though. But the bottom line is a lot depends on the workload and that will vary for each application.
MarcosGalvani
on Jan 5, 2011
It is wonderful to know where you actually learn about those tips. I would like to see more references in the articles.

Take Care!

Please or Register to post comments.

Migrating to SQL Server 2008 & 2008 R2 Project Plan

<<< Back to the Project Plan


Planning


SQL Server 2008 R2 Requirements

SQL Server Version Build Numbers

SQL Server 2008 R2 New Features

Migrating


Upgrading to SQL Server 2008 R2

Migrating to SQL Server 2008

How to Upgrade to SQL Server 2008 from SQL Server 2000

Tools for Migrating Access to SQL Server

SQL Server 2008 - Episode 8: How Do I Upgrade

Fine Tune Your Migration


Database Administration

Top 10 SQL Server Performance Tuning Tips

Configuring SQL Server 2008’s Resource Governor

Set Up a SQL Server 2008 Cluster

Upgrading a SQL Server 2005 Cluster to a SQL Server 2008

Compression in SQL Server 2008

An Overview of SQL Server High Availability Options

3 Log Shipping Techniques

Efficient Data Management in SQL Server 2008, Part 1

Efficient Data Management in SQL Server 2008, Part 2

Build a Policy-Based Management System for SQL Server 2008

Synchronizing Disparate Data with Master Data Services

Introducing the SQL Server Utility

Tips for Using SQL Server Management Studio 2008

SQL Server 2008 - Episode 2: Under the Hood

SQL Server 2008 - Episode 5: Knowing Your Data

SQL Server 2008 - Episode 6: 64 Bit and You

SQL Server 2008 - Episode 7: Ready for your Environment

SQL Server 2008 R2: Enterprise Data Access for Mission-Critical Applications

Backup and Recovery

Database Mirroring in SQL Server 2008 R2 and SQL Server 2008

Advanced BACKUP and RESTORE Options

Step-by-Step Approach to Differential Backup and Recovery

Security and Auditing

Hardening SQL Server

SQL Server 2008 Boosts Built-in Encryption

SQL Server Ecryption

SQL Server 2008 - Episode 1: How Can I Secure Data

SQL Server 2008 - Episode 3: Protecting Your Data

Virtualization

Optimizing SQL Server Performance in a Virtual Environment

7 Best Practices for Running SQL Server on Hyper-V

T-SQL

Upgrading Clusters to SQL Server 2012 When AlwaysOn Availability Groups Will Be Used

Planning and Implementing a SQL Server Cluster

More SQL Server 2008 T-SQL Improvements

SQL Server 2008’s T-SQL Development and Debugging Features

Parallelism Enhancements in SQL Server 2008

Date and Time Support in SQL Server 2008

Using SQL Server 2008 FILESTREAM Storage

Using SQL Server 2008's FILESTREAM Data Type

Simplifying Spatial Data

SQL Server 2008 - Episode 4: What About Developers

Business Intelligence

Introducing PowerPivot for SharePoint

SQL Server 2008 Change Data Capture

SharePoint and SQL Server Integration

5 Considerations for Setting up a SQL Server 2008 Backend for SharePoint 2010

SSRS 2008 R2 and SharePoint 2010 Integration

PowerPivot and Excel

How to Create PowerPivot Applications in Excel 2010

A Walkthrough of PowerPivot for Excel 2010

A Walkthrough of PowerPivot for Excel 2010

Integrating SQL Server 2008 Spatial Capabilities with Microsoft Virtual Earth

Managed Self-Service BI

SQL Server Reporting Services

Unlock the Secrets of SQL Server 2008 Reporting Services

A Candid Look at Report Builder 3.0

SQL Server Reporting Services

Use Checkpoints to Restart Failed SSIS Packages

SSIS Novices’ Guide to Data Warehouses: Moving Data into the Data Warehouse

SQL Server Reporting Services

Backup Basics for SQL Server Analysis Services