Everyone remembers that in 32-bit windows architecture, in order for SQL Server (2005) to address more than 4GB of memory, one must enable the /PAE switch in the boot.ini, as a prerequisite to enabling AWE.
This short blog is not meant to rehash the memory architecture of Windows and SQL, nor get deep into PAE and AWE, (there's plenty written on the subjects already), but to share a little known alternate way /PAE is enabled in some Windows systems, that us DBA's should be aware of. So, if you as a DBA are doing a server memory configuration analysis and don't see the /PAE switch inside the boot.ini, it doesn't mean it's not enabled. In fact, you may not even need it.
First, a little refresher on using physical memory for SQL Server, enabling PAE and AWE: This does NOT apply to 64-bit systems, as PAE is not supported.
32-bit editions have the capability to exceed the 4 GB limit with the use of Intel Physical Addressing Extensions (PAE). Use of the /PAE switch in the Windows boot.ini configuration file provides access to physical memory above the 4 GB limit. This is a requirement for AWE memory access above 4 GB.
To enable Address Windowing Extensions (AWE) for Microsoft SQL Server, you must run the SQL Server 2005 Database Engine under a Microsoft Windows account that has been assigned the Lock Pages in Memory option and use sp_configure to set the awe enabled option to 1.
The 4-GB address space is mapped to the available physical memory by the Windows Virtual Memory Manager (VMM). The amount of physical memory supported has increased with the introduction of the Windows Server 2003 operating systems. The physical memory accessible by AWE therefore depends on which operating system you are using:
- Windows Server 2003, Standard Edition supports physical memory up to 4 GB.
- Windows Server 2003, Enterprise Edition supports physical memory up to 32 GB.
- Windows Server 2003, Datacenter Edition supports physical memory up to 64 GB.
OK, back to the intention of this blog.
The PAE kernel can be enabled automatically without the /PAE switch present in the boot entry if the system has DEP enabled (/NOEXECUTE switch is present) or the system processor supports hardware-enforced DEP. Presence of the /NOEXECUTE switch on a system with a processor that supports hardware-enforced DEP implies the /PAE switch. If the system processor is capable of hardware-enforced DEP and the /NOEXECUTE switch is not present in the boot entry, Windows assumes /NOEXECUTE=optin by default and enables PAE mode.
The source of this information is from this technical document on PAE Windows and Memory: http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx
Hope this tidbit helps!