Lock pages in memory now available for 64 bit Standard Edition of SQL Server

Great news!!!

Due to over-whelming customer demand for the "Lock pages in memory" support for the Standard Edition of SQL Server 2005 and 2008, Microsoft has released Cumulative Updates that will help SQL Server 64 bit Standard Edition to "lock pages" .

This feature was already available on the Enterprise and Developer Edition. Enabling "Lock pages in memory" enables the SQL Server to use the AWE APIs, thereby avoiding potential performance issues due to trimming of the working set.

"Lock pages in memory" comes as a trace flag that can be enabled on the following cumulative updates:
CU2 for SQL Server 2008 SP1 => https://support.microsoft.com/kb/970315/en-us
CU4 for SQL Server 2005 SP3 => https://support.microsoft.com/kb/970279/en-us

How to enable "Lock pages in Memory" at the Windows level:

  1. On the Start menu, click Run. In the Open box, type gpedit.msc. The Group Policy dialog box opens.
  2. On the Group Policy console, expand Computer Configuration, and then expand Windows Settings.
  3. Expand Security Settings, and then expand Local Policies.
  4. Select the User Rights Assignment folder. The policies will be displayed in the details pane.
  5. In the pane, double-click Lock pages in memory.
  6. In the Local Security Policy Setting dialog box, click Add.
  7. In the Select Users or Groups dialog box, add the account that runs the SQL Server Service.
  8. Restart the machine for these changes to take effect.

If you are running an Enterprise or Developer Edition of SQL Server 2005 or 2008, please stop here. The rest of the steps are for the Standard Edition Only.

  1. Ensure that the build of SQL Server 2008 is Cumulative Update 2 on Service Pack 1. Preferably, run the "select @@version" command against the SQL Server Instance and verify that the build is 10.00.2714.00. In case of SQL Server 2005, please verify that the build is 9.00.4226.

  2. Now set the Trace Flag 845 as a startup trace flag. This can be done by adding
    -T845 to the startup parameters from the SQL Server Configuration Manager. Please refer to the screenshot below:

    SQLConfigManager

  3. Restart the SQL Server Service.

  4. Verify that the following message is written in the SQL Server ErrorLog file at startup:
    Using locked pages for buffer pool

Note: Enabling Locked Pages may have a negative performance impact on your system performance. Please consider all potential effects before you use this option.
Enabling this trace flag on the Enterprise Edition or the Developer Edition has no effect.

Additional Readings:
How to configure SQL Server to use more than 2 GB of physical memory
Enabling Memory Support for Over 4 GB of Physical Memory
How to reduce paging of buffer pool memory in the 64-bit version of SQL Server
SQL Server Working Set Trim Problems? - Consider...
Support for Locked Pages on SQL Server 2005 Standard Edition 64-bit systems and on SQL Server 2008 Standard Edition 64-bit systems

Have a very good day!!!

Disclaimer: All information provided here is my personal opinion and is neither verified nor approved by Microsoft before it is published. All information, and code samples, if any, is provided "AS IS" with no warranties and confers no rights.

Comments

  • Anonymous
    May 20, 2009
    PingBack from http://asp-net-hosting.simplynetdev.com/lock-pages-in-memory-now-available-for-standard-edition-of-sql-server/

  • Anonymous
    June 01, 2009
    setting -T845 keeps the SQLSERVER service from starting.

  • Anonymous
    June 02, 2009
    Hi Don, Can you please paste in the result of "select @@version" here? Also, can you please paste in the string in the Startup Parameters?

  • Anonymous
    January 15, 2010
    I have granted the Lock Pages in Memory to the SQL user account, and I have version 9.00.4226, and I have added the -T845 trace flag but my server does not show it in the error log. In fact, it shows the opposite saying "a significant part of sql server process memory has been paged out. this may result in performance degradation..." Any ideas? Windows 2008 Enterprise x64 with SQL Server 2005 Standard x64 SP3 with CU4 (9.00.4226)

  • Anonymous
    April 20, 2010
    Hi David, Did you resolve your issue? I am having the same problem. I have followed the instructions to the letter. The trace flag is showing in the log but can't see the following text in the errorlog 'Using locked pages for buffer pool' The server is still suffering from frequest memory trims. Any help much appreciated.