Databases Reference
In-Depth Information
available processors with the assumption that each processor will be able to complete the same amount
of work in the given time. In a Hyper-Threading scenario, any thread that's not currently executing will
be stalled until the other thread on that processor completes.
If you do have the time to test it and you think the performance benefit will be worth it, then there are
a couple of things you should be aware of to give you the best chance for a performance gain. First, the
operating system can make a big difference; Windows Server 2000 isn't Hyper-Threading aware and
Windows Server 2003 is. The effect of this is that Windows 2003 in theory will schedule threads on one
logical processor per core before utilizing the other logical processor on each core.
Windows Server 2003 Service Pack 1 added more Hyper-Threading optimizations, so make sure you're
running at least Service Pack 1.
Something else to consider is that Hyper-Threading itself has been evolving and feedback from customers
running SQL Server seems to indicate that it's getting better with each generation of processors. So a
customer trying it on an older server may not see as much benefit as if they run on a server with the very
latest generation of processors.
Admittedly, there is a chance of getting a performance benefit from Hyper-Threading on SQL Server
but due to the cost of testing each SQL Server application and the relative low reward, most customers
choose to switch it off as default, particularly if they have dozens or even hundreds of SQL Servers in
their environment.
Best Practice
Disable Hyper-Threading unless you have the time to test it thoroughly. Don't use it on
Windows 2000 as it's not Hyper-Threading aware.
64-Bit
If you're considering purchasing new servers today you're pretty much guaranteed to get 64-bit
capable hardware so you should be considering 64-bit Windows. Even if the server is only going to
run 32-bit applications, the ability to increase memory beyond 4 GB without resorting to PAE means
that a 64-bit system should be the first choice. You should take the approach of making 64-bit the default
and 32-bit an option requiring justification rather than the other way around.
However, before jumping in with both feet it's worth noting a potential drawback with 64-bit systems,
and that's a lack of 64-bit drivers; any driver that runs in kernel mode needs to be compiled for 64-bit.
That predominantly means hardware and most hardware vendors have written 64-bit drivers for their
new products but there are some out there who still haven't written them. If you're purchasing hardware
on a budget, you may end up with older model hardware and then find that the vendor has no intention
of writing a 64-bit driver for your brand new NIC, disk adapter, and so on. Check for full 64-bit support
before you buy.
SQL Server 2008 will be released for both 32-bit and 64-bit, but it's a distinct possibility that the version
after that will be 64-bit only.
Best Practice
Go for 64-bit for your default environment and justify any need to go for 32-bit.
Search WWH ::




Custom Search