2.7. Resource Utilization

Ideally, you'll estimate your workload accurately, buy commodity hardware, and distribute application roles or functions to ensure an even spread of work and effective use of all resources while not over-burdening any single server or resource. The practicalities of the testing and measurement required to estimate workload often mean that you'll be in a situation where you have to go live with a service or application with less testing than you'd have liked (indeed occasionally with none), and you have to deal with the problems there and then.

On many occasions, making sensible assumptions and realistically quantifying risks along with a mitigation plan is the only way to get projects off the ground. In these situations the tendency is usually to conservatively over-specify hardware in an effort to avoid upgrading at a later date. One of the characteristics of working with SQL Server that makes it so interesting is that frequently no amount of hardware can compensate for a bad database design or poorly thought-through disk subsystem.

A resource bottleneck is the highest cost component in terms of time, on the critical path when performing user-requested activity. In terms of overall perceived application performance, you could consider the network, user authentication, or a database as a bottleneck. More relevant, within the database server, you could consider memory, CPU, or disk throughput as a bottleneck if performing an operation is impaired significantly ...

Get Professional SQL Server® 2005 Performance Tuning now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.