AWE Shucks

AWE – Address Windowing Extensions. Honestly I have heard the term before, and I knew that the person/article stating the term was talking memory. So I set out to get a clearer understanding of what AWE meant and how it relates to SQL Server.

From M$ web site: Address Windowing Extensions (AWE) allow 32-bit operating systems to access large amounts of memory.

My first question from that is how? How does that work? Some more searching led me to this from Microsoft’s web site:

Microsoft SQL Server uses the Microsoft Windows Address Windowing Extensions (AWE) API to support very large amounts of physical memory. SQL Server can access up to 64 gigabytes (GB) of memory on Microsoft Windows 2000 Server and Microsoft Windows Server 2003.

So from that we know the following:
* AWE is a set of memory management extensions (API)
* Only applicable to 32bit Systems
* Will increase the amount of memory SQL Server can support

Standard 32-bit addresses can map a maximum of 4GB of memory. You can find several articles on the Boot.ini hack to override the windows default of 2GB to SQL, 2GB to OS. The override will get you another 1GB so that 3GB is dedicated to SQL Server while 1GB is reserved for the OS.

So yes you can use AWE to allow SQL server to allocate more memory, however the memory can only be used by SQL Server data buffers and cannot be used for things like caching query plans, sorting, indexing, user connections, etc. And best guess is that enabling AWE adds some overhead that you would not see in a pure 64bit installation. Before you utilize AWE, if the budget is there, and you need to address more than 3GB of RAM you may want to go the 64bit route.

Advertisements

2 thoughts on “AWE Shucks

  1. Although it is true that the memory can only be used by SQL Server data buffers but the performance gains are tremendous. We had a situation where we had to decide between AWE and shifting to a 64 bit setup. We decided to opt for AWE because of the attractive cost performance ratio. It only required one man day worth of work and a midnight downtime of 10 minutes. I have posted an article on what we did here http://codejotter.wordpress.com/2010/03/05/allow-sql-server-to-use-more-ram/

  2. Amit,

    Thank you for the feedback! Your real world example of AWE in action is great. We also have a server utilizing AWE. However the server was in place before I started. So thanks for the how-to guide on enabling AWE.

    My main point of the article is that if the budget is there go the 64-bit route. But as you mentioned AWE is a great alternative if cost is an issue. These days cost is usually an issue so AWE is a good solution.

    Later.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s