4

If I install SQL Server 2005 x86 on Windows Server 2008 x64 how much memory will SQL be able to use be default? How much after setting SQL server's AWE switch?

This post talks about using /3gb, /PAE, and AWE to utilize SQL Server 2008 x86 memory appropriately on Windows Server 2008 x86.

My hypothesis based on that post and related information I have seen elsewhere is that by default a SQL Server 2005 x86 instance will be able to use 4GB of memory on Windows Server 2008 x64 and if I enable AWE then SQL will be able to use as much memory as the OS's sees.

PS: Please note if your answer generalizes to other version of SQL and or Windows Server.

Thanks

Chris Magnuson
  • 3,701
  • 9
  • 40
  • 45
  • Why the x86 install? You won't really be loosing anything by installing an x64 SQL Instance. – mrdenny Dec 21 '09 at 09:35
  • This was to avoid the difficulty of upgrading our SQL Server 2005 license to an x64 license. I have heard that I can get the license upgraded for free by Microsoft but I was also curious to get the answer to this question just to better understand how x64 and x86 interact in this particular instance. – Chris Magnuson Dec 21 '09 at 13:49

3 Answers3

5

x86 processes with the LargeAddressAware bit set (like sqlservr.exe) get a full 4 GB VAS for themselves. Enabling AWE (on OS and SQL editions that support it) allows the SQL server instance to map extra pages (up to 64GB) in and out of its VAS and use them for the buffer pool.

That being said, x86 is a dead end and you should switch to an x64 instance ASAP.

Remus Rusanu
  • 8,253
  • 1
  • 19
  • 22
  • What does enabling AWE on the OS mean? I haven't seen a way to do this and google isn't showing me any examples of enabling AWE in the context of the OS, only in the context of the SQL instance. – Chris Magnuson Dec 21 '09 at 13:52
  • AWE is an OS concept, not a SQL one. http://msdn.microsoft.com/en-us/library/aa366527(VS.85).aspx – Remus Rusanu Dec 21 '09 at 18:26
0

4 GB per instance for SQL 2005 Standard/Enterprise.

An x86 process on x64 can use a max of 2GB of RAM, or 4 GB if the application is compiled/linked with the /LARGEADDRESSAWARE switch.

See: Memory Limits for Windows Releases:

http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/04/02/link-32-bit-native-c-exes-with-largeaddressaware.aspx

Greg Askew
  • 34,339
  • 3
  • 52
  • 81
-1

AWE is not needed for 64-bit systems; see this, SQL Server Standard or Enterprise will see whatever the operating system presents to it.

You'll need Windows Server 2008 Enterprise edition to see more than 32GB of RAM, Standard is limited to 32GB. Refer here

SqlACID
  • 2,166
  • 18
  • 18