So you are going along your normal day, and your boss comes up to you and tells you “We’ve got a few thousand bucks left in this years budget, what would you like to upgrade?” Assuming that new 26″ monitors for your workstation are out of the question, the boss is probably talking about a server upgrade here so lets see what we can do.
1. RAM – RAM is cheep, and easy to upgrade. For a couple of thousand bucks you could easily add another 32-64 Gigs of RAM (more if you buy off brand).
2. Drive Space – Disks are also cheep (not as cheep as RAM, but close). You could drop some extra spindles in there and more tempdb off to its own drive, or even break the database into a couple of physical files and double the available IO.
3. Faster CPUs – CPUs usually aren’t all that cheep. If you have dual core chips, and you want to get some core chips you are probably looking at ~$1500 per chip, so that probably isn’t an option. Now if you have a single quad core CPU in there, you could drop a second one in double your CPU power. This will throw off your licensing if this is an internet facing SQL Server. Those 6 core CPUs may look might sexy, but sadly they are probably way out of your budget at ~$3k each.
Those are pretty much your options. Now if your IO is being slammed that might be a good place to throw that cash, but if your IO is being slammed is it because of writes or reads? If it’s because of writes then by all means throw the cash at the storage. If it is because of reads, then check your hit cache ratio, and page life expediency. If they are low, then some more RAM is in order. This will increase the amount of data in cache, increasing the amount of time the data stays in cache, and reducing the IO requirements on to the disk to a crawl.
Everyone wants more CPU power in there servers. But sadly CPU power is still very expensive, so it isn’t really going to be an upgrade option unless you’ve got a pretty small server. Not to mention the licensing issues that can quickly lead to if you add more physical CPUs than you are licensed for.
All things being equal I’d probably go for the RAM upgrade. Long term I think that’ll get you the most bang for the buck, however that’s just me. And depending on the server I might change my mind. Before jumping into any system upgrade think carefully about what you want to purchase, what you want to achieve, and make sure that those things cross.
P.S. My hardware prices were from Dell’s website. Your prices will vary depending on where you do your shopping.