• There is no tutorial for that, because each application is different. And it is very hard to give a "cook recipe" or one quick answer.

    You need to get a baseline of your existing environment. You can use perfmon or DMVs for that. Run it for a few days or a week, so you can get a better understanding of what resources your app uses most , etc.

    A few important are:

    -CPU usage

    -RAM usage

    -Disk latency (read and writes)

    -Network utilization

    -Page life expectancy (SQL instance level)

    Just to mention a few.

    So if you see that your server barely uses CPU over a one week period or more, you know that buying a powerful CPU won't be the best thing. On the other hand, if you see that your apps use a lot of RAM, you know that putting enough RAM would be critical.

    Also, please keep in mind that SQL running on VMware is different than running on a regular an physical server, as VMware manages CPU and RAM for the actual guest. As a matter of fact, getting perfmon from a VMware machine can be misleading, as CPU and RAM are just an abstraction of the real stuff. If that's the case, ask your VMware guy for the virtual machine metrics, like CPU, RAM, disk latency, etc, so you can get an idea of how much workload you have right now on that virtual machine.