SQL Clone
SQLServerCentral is supported by Redgate
Log in  ::  Register  ::  Not logged in

A SQL Server Hardware Nugget A Day – Day 22

For Day 22 of this series, I want to talk a little about 32-bit vs. 64-bit hardware, and the related issues of 32-bit vs. 64-bit operating systems and 32-bit vs. 64-bit versions of SQL Server.

Most recent releases of Windows Server are available in three different versions: x86 (32-bit), x64 (64-bit), and ia64 (64-bit Itanium). The sole exception is Windows Server 2008 R2, which only has x64 and ia64 versions, and will be the last version of Windows Server that will support ia64.

I have been advocating for some time that people use 64-bit versions of SQL Server 2005, and above, since the biggest barriers to its adoption, namely lack of hardware support, have largely been removed. All server-grade processors released in the last six-to-seven years have native 64-bit support. The other major obstacle, lack of 64-bit drivers for hardware components such as NICs, HBAs, and RAID controllers, is not really an issue any more, as the advent of 64-bit Windows Server 2008 R2, in 2009, has meant that 64-bit drivers are much more readily available for nearly all devices.

You can confirm if your processor has x64 support by running CPU-Z and looking at the Instructions section on the CPU tab. If you see EM64T (for Intel processors) that means it does have x64 support. Unless your processor is extremely old, it will support x64.


One sticking point, and the bane of many a DBA’s life when it comes to upgrades, is third party databases. Some common reasons for still using an x86 version of Windows Server include:

3rd party, ISV databases that require x86
3rd party, ISV databases that have not been “certified” on x64
3rd party applications using older data access technology, such as 32-bit ODBC drivers or 32-bit OLE-DB providers that do not work with an x64 database server

It is also very likely (but not officially decided or announced) that SQL Server Denali will be the last version of SQL Server to have x86 support. It has already been announced that there will not be ia64 support in Denali.

I am one of the lucky ones; at NewsGator, we have no 3rd party databases in our production environment, and we are a 100% Microsoft shop so all of the applications that use my databases use the ADO.NET Provider. As a result, NewsGator’s production SQL Server environment has been 100% 64-bit since April 2006.


Posted by graeme.whelan on 25 April 2011

I've seen all sorts of bugs resulting from SQL running in a 64-bit in a virtual machine, where the host OS was 32-bit (on hardware with a 64-bit CPU).

I still haven't figured out how they managed to get it running, but it appeared to work just fine - until large chunks of data started moving around! Some would be ok, others appeared to be corrupted by truncation of int64 to int32. As a temporary fix, the data layer was recompiled after changing all 'int' declarations to explicit int64 or int32. Soon the virtual machine had to moved to a 64-bit host OS to provide the stability needed in a production environment.

Posted by Glenn Berry on 25 April 2011


That is a pretty weird edge case. What virtualization environment was being used?

Leave a Comment

Please register or log in to leave a comment.