views:

1401

answers:

3

Using SQL Server 2005 developer edition on Windows XP pro (32-bit) I notice that the check box to enable AWE (Advanced Windowing Extensions) is enabled. I have an Opteron workstation that I could easily upgrade to 8GB or more, although it is not practical to move off 32-bit Windows XP Pro for the development environment. As far as I can tell, the MMU for the Opteron running in 32-bit mode should support the 36-bit physical address space, much as a 32-bit Xeon.

Reducing the memory footprint of SQL Server would let me give Analysis Services more elbow room.

  • Does anyone know whether AWE on Windows XP has support for more than 4GB of RAM that could be used for SQL Server (on a CPU with MMU support for this)?

  • Alternatively, is anyone aware of what data dictionary views might tell me about AWE buffer usage so that I could try it and get some sort of definitive view as to whether it is using the extra memory?

EDIT: For those not familiar with it, AWE is a facility that allows you to control virtual-physical address mapping and page arbitrary physical memory in and out of the 4GB virtual address space of a process. The MMU on 32 bit Xeons (and some other processors) will actually support more than 4GB of physical RAM, although a single process address space can only see 4GB at a time. From what I can tell the MMU on the Opteron also has this capability on 32-bit code.

SQL Server has support for using AWE to gain access to more than the 2GB or 3GB of physical RAM that its process address space would allow on a 32-bit box. It does this by explicitly managing the mapping, swapping physical memory in and out of the virtual address space. Certain versions of Windows, particularly Windows 2003 and Windows 2000 Advanced Server, will support more than 4GB of memory used in this way, and provide an API for doing this.

The question is: Where I have a machine with hardware support for this, will Windows XP 32-bit let me use more than 4GB of RAM in this way?

+1  A: 

Hi NXC

Unless the operating system has support for more than the 32bit memory addressing space, none of the apps will support it. You would need to upgrade to a 64bit OS to allow SQL server to take advantage of extra RAM.

Ray Booysen
A: 

You cant give more than 2Gb address space to user process in 32-bit OS. Practically you have an option to run process in 3Gb user address space using Windows Server 2003 with /3Gb switch applied.

sinm
+7  A: 

Windows XP (32-bit) doesn't support PAE (i.e. 36-bit physical addresses); it only supports 4GB of RAM. You need Windows 2003 (Enterprise or Datacenter) for PAE support. Since your OS can't use PAE, your applications can't use AWE.

You could run it with the /3GB switch, giving SQL Server more space to breathe.

Personally, I'd upgrade to a 64-bit version of Windows, probably Windows 7 x64.

Roger Lipscombe
Thank you very much. 'Windows XP does not support PAE' is exactly the answer to this question. +1.
ConcernedOfTunbridgeWells