Enable Lock Pages in Memory to Prevent Database Paging to Disk

Lock Pages in Memory is a Windows security setting policy that determines which accounts can use a process to keep data in physical memory, which prevents the system from paging the data to virtual memory on disk, directly improves the response time speed of the process, especially data-intensive program such as SQL Server database management system, as access time from RAM is definitely faster than disk I/O.

Lock Pages in Memory option privilege must be enabled to configure Address Windowing Extensions (AWE) which allow a 32-bit software application to access more physical memory than it has virtual address space. Both settings are normally used to optimize Microsoft SQL Server database server running on Windows 2000, Windows Server 2003 and Windows Server 2008 by allowing the user account running SQL Server to load the whole process in physical memory without using any paging file flow over to disk.

Note that exercising or enabling this privilege could significantly affect system performance by decreasing the amount of available random access memory (RAM). So, a system is recommended to have large memory size, typically bigger than 4 GB. Which mean that on 32-bit operating system, PAE has to be enabled, although neither Lock Pages in Memory nor AWE depend on PAE. Beside, on 32-bit operating systems, setting this privilege when not using AWE can significantly impair system performance. However, on 64-bit operating system, although not required, it’s recommend to lock pages in memory.

To enable Lock Pages in Memory setting, system administrator has to use the Windows Group Policy tool (gpedit.msc) to enable this policy for the account used by SQL Server.

  1. On the Start menu, click Run. In the “Open” box, type gpedit.msc.
  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.
  5. In the right details pane, double-click Lock pages in memory.

    Lock Pages in Memory Policy

  6. In the “Local Security Policy Setting” dialog box, click Add.
  7. In the “Select Users or Groups” dialog box, add an account with privileges to run sqlservr.exe (e.g. NetworkService).

5 Responses to “Enable Lock Pages in Memory to Prevent Database Paging to Disk”

  1. Mo
    February 12th, 2011 16:28
    5

    The Add button is disabled and it says "This setting is not compatible with computers running windows 2000 service pack 1 or earlier"

    But this is Windows 2003 R2 Standard w/Service Pack 2

    Please help

  2. vtbinhit
    November 20th, 2010 19:05
    4

    Thanks a lot

  3. Brad
    November 14th, 2009 08:21
    3

    "add an account with privileges to run sqlservr.exe"

    How do you know which accounts to add?

  4. kyle mera
    February 20th, 2009 09:15
    2

    "Windows cannot find "gpedit.msc."

    When going under control panel, edit group policies it says, MMC cannot open the file "C:windowssystem32gpedit.msc.

    I looked up that directory and the file is not there!

    I am an administrator account by the way.

  5. Enable Lock Pages in Memory to Prevent Database Paging to Disk - P2P Talk!
    July 20th, 2008 10:22
    1

    [...] about it here: Enable Lock Pages in Memory to Prevent Database Paging to Disk

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.

New Articles