I had two contrasting conversation about upgrade to SQL Server 2008 yesterday. A good friend of mine Darren is keen to use SQL Server 2008 for his new projects because he understands how it makes much better use of the many cores available on his new servers and works well with Windows Server 2008. Conversely Viral is working with a customer who is starting a new project but wants to uses SQL Server 2005 as they think it’s less resource intensive than SQL Server 2008.
So which is correct?
If you take a workload running on SQL server 2005 and upgrade it on the same machine to SQL server 2008, it will be a bit faster possibly 5-10%. Will it use more CPU and memory? Only if you let it, and bizarrely the customer in question has a server with 8gb RAM in it but is only running 32 bit windows server 2003 on it so even with AWE support SQL can really only use 2Gb of that (leaving 1Gb for the operating system).
If performance was an issue then they would be better moving to 64 bit Windows Server 2008, reserve 2Gb for the operating system and give the other 6Gb available to SQL Server(i.e. 3x what they have now). Windows Server 2008 has a much better networking stack and won’t suffer partition alignment issues (as per this post) that can also slow SQL Server down on old windows server versions.
However my main reason for concern with this customer is that in developing for an old release the work they are doing will have a shorter supported shelf life. I suspect fear of the unknown may be at play here, but the tools to mange both versions are the same and setup is easier if anything in SQL Server 2008. My final point was that if these issues did exist then a quick scan of the forums and boards would quickly reveal this, and all I could find was one guy having some connectivity issues on his Windows XP laptop, which he subsequently fixed by using the right version of the SQL native client.