none
Newbie question: 32bit SQL Server 2008 on 64bit MS Windows Server 2008

    Question

  • The server techies at my work are saying that we should use 32 bit SQL Server on a server with 32 GB of RAM running MS Windows 2008 64 bit.
    They point to this page http://msdn.microsoft.com/en-us/library/ms143685.aspx which says that SQL uses the "OS maximum".
    What is not specified is how.

    There are plenty of references in SQL books online and in this forum to how 32 bit versions of SQL Server make use of AWE to use more than 4 GB of RAM, but these always seem to refer directly to 32 bit OSs or fail to specify the "bitness" of the OS.

    Being old, I've done programming with memory pointers, and hence I totally get why a 32 bit process can only access 4 GB of RAM.  I also can get my head around AWE and how that "enables" a bigger data cache. 

    So, if I install the 32 bit version of MS SQL Server 2008 standard edition on a server with 32 GB of RAM running 64 bit MS Windows 2008 standard edition, what does the memory management look like?  I can't think it would be direct normal access?

    So then if we are running lots of little instances, 32 bit edition may make sense as we'll have lots of small processes.  However, if we want to run a big instance with lots of databases, then that instance will be "cripplied" in that its data cache will be via AWE.

    I also don't get why we wouldn't go for a 64 bit version of SQL Server?  What is the down side? 

    T

    Wednesday, October 21, 2009 11:34 PM

Answers

  • Hello,

    More coverage of 32bit/64bit is covered here, but you have the gist of it.

    Basically, you get native 64-bit performance on hardware that supports it, as using 32-bit in a the 64-bit environment will make use of WoW (Windows on Windows) which really shouldn't have a performance impact.

    When using AWE, if I remember correctly that memory allocated above the limits is for data only and can't be used for execution. This would mean you're artificially creating a barrier of 3 GB of memory that can be executed by SQL Server using your example.

    I would go with the 64-bit version.
    Thursday, October 22, 2009 10:58 AM

All replies

  • Hello,

    More coverage of 32bit/64bit is covered here, but you have the gist of it.

    Basically, you get native 64-bit performance on hardware that supports it, as using 32-bit in a the 64-bit environment will make use of WoW (Windows on Windows) which really shouldn't have a performance impact.

    When using AWE, if I remember correctly that memory allocated above the limits is for data only and can't be used for execution. This would mean you're artificially creating a barrier of 3 GB of memory that can be executed by SQL Server using your example.

    I would go with the 64-bit version.
    Thursday, October 22, 2009 10:58 AM
  • ChunSong,

    I have the same question as Long Haired Git .  just to be clear in your answer, are you confirming Long Haired Git 's assumption that SQL Server 32-bit edition running Windows Server 64-bit is limited to 4gb or ram?  i have a client running sql server 2005 32-bit on windows server 2003  R2 64-bit with 8 processors and 8 gb of memory. after monitoring for one day it appears that sql server's is not using more than 4 gb and we are receiving many warnings about virtual memory running low.
    Wednesday, December 30, 2009 10:33 PM
  • ChunSong,

    I have the same question as Long Haired Git .  just to be clear in your answer, are you confirming Long Haired Git 's assumption that SQL Server 32-bit edition running Windows Server 64-bit is limited to 4gb or ram?  i have a client running sql server 2005 32-bit on windows server 2003  R2 64-bit with 8 processors and 8 gb of memory. after monitoring for one day it appears that sql server's is not using more than 4 gb and we are receiving many warnings about virtual memory running low.

    Hi,

    In your case, the SQL Server is running on 32-bit subsystem (WOW64). WOW64 is a feature of 64-bit editions of Microsoft Windows that allows 32-bit applications to execute natively in 32-bit mode. Applications function in 32-bit mode even though the underlying operating system is running on the 64-bit platform. So the SQL Server can't use more than 4 GB memory (32-bit OS support no more than 4 GB).

    More information may be helpful to you, see below:
    -----------------------------------------------------------
    Memory Supported by the Editions of SQL Server 2005
    http://msdn.microsoft.com/en-us/library/ms143685(SQL.90).aspx

    Hardware and Software Requirements for Installing SQL Server 2005
    http://msdn.microsoft.com/en-us/library/ms143506(SQL.90).aspx

    \3GB \PAE and AWE - Taking away (some) confusion...
    http://blogs.technet.com/beatrice/archive/2008/08/29/3gb-pae-and-awe-taking-away-some-confusion.aspx

    Hope this helps.

    Chunsong Feng
    Microsoft Online Community Support

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    Thursday, December 31, 2009 2:27 AM
    Moderator