Problem solve Get help with specific problems with your technologies, process and projects.

Performance tuning for SQL Server 2005 and Exchange running on SBS

To avoid performance problems when running multiple instances of SQL Server 2005 with Exchange on Windows SBS, refer to these expert best practices.

I'm interested in your thoughts on performance tuning multiple instances of SQL Server 2005 running on Windows 2003 Small Business Server (SBS).

I have taken over development of an Access 2003 Project against SQL Server 2005 that is having serious performance issues. Upon investigation I discovered the SQL Server is configured to run Exchange Server, File & Print Services and five instances of SQL Server on a HP server with two disks and 2 GB of RAM.

I think the SQL Server instances are causing the problems; each instance takes about 1.7 GB of virtual memory. The instances being run are the following:

  • Access / Office Application
  • Backup Exec
  • Windows Update Service
  • SharePoint
  • SMS montitoring

I noticed when the Access Application is running slowly, the free CPU usage is around 90%. I think the SQL Server instances are I/O bound so that the context switches are causing the performance problems.

I plan to increase RAM and the number of disks. But I'm also interested in reducing the number of SQL Server 2005 instances by turning off several services and hopefully sharing SQL Server instances for applications like Backup Windows Update and SMS Services.

It is highly recommended that you do not host SQL Server and Exchange Server on the same server. Both Exchange Server and SQL Server will want to take all the RAM, as well as both being very disk intensive (Exchange Server is a JET database so it's performing basic database operations under the hood).

Reducing the number of SQL Server instances will definitely help performance. There isn't really any reason that all these applications couldn't use a single database instance. The upside to this will be that they can all share a single pool of RAM. The downside is you can't specify how much RAM each one uses.

If I was the administrator on this box, I'd pull all the SQL Server databases into a single instance of SQL Server, and if possible move that instance to another server. With everything that this server is doing it's very possible that the two disk drives are killing the system. Without having performance monitor data handy, I can't dig into the system specifically, but those would be two excellent places to start.

Because Exchange Server is on there, you'll want to limit your SQL Server databases to about 768 MB of RAM total. This way Exchange Server can have some RAM, as well as the operating system.

Dig Deeper on Microsoft SQL Server 2005

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.