Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a SQL Server 2005 instance running on a production server. CPU load is relatively low in part thanks to some recent improvements in the code. I'm trying to work out if I could safely reduce the number of CPUs in the machine and would like to test that out before actually getting them removed.

Is it possible to tell SQL Server 2005 to just use say 4 of the 8 CPUs in the machine to test this out?

Thanks, Robin

share|improve this question
up vote 2 down vote accepted

Yes - just set the processor affinity accordingly. The net has a lot of fancy coloured walkthroughs. Note that the Express Edition only ever uses a single thread, so it is hard-limited to using 1 CPU already.

share|improve this answer
thanks, so unchecking processor affinity basically stops sql server using that processor? This was something a few sites seemed to be alluding to but wasn't made completely clear (to me anyway) – Robin Feb 17 '12 at 13:11
Yes. The idea behind all this is to prevent SQL server thread execution on CPUs where other loads greatly benefit from CPU caching and thus reduce performance-impairing cache thrashing. – the-wabbit Feb 17 '12 at 13:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.