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
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.
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
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