1,
The following table indicates whether a specific type of memory allocation is controlled by themax server memory (MB) and min server memory (MB) configuration options.
Collapse this table
Type of memory allocation | SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 | SQL Server 2012 |
---|---|---|
Single-page allocations | Yes | Yes, consolidated into "any size" page allocations |
Multi-page allocations | No | Yes, consolidated into "any size" page allocations |
CLR allocations | No | Yes |
Thread stacks memory | No | No |
Direct allocations from Windows | No | No |
2,
The following table provides the requirements to enable "locked pages" in different versions and editions of SQL Server on different platforms:
Collapse this table
Enterprise Edition, Data Center Edition | Standard Edition, Business Intelligence Edition | Other editions | |
---|---|---|---|
SQL 2012 (32-bit and 64-bit) | • Assign LPIM user right to SQL Startup account | • Assign LPIM user right to SQL Startup account | No support for "locked pages" |
SQL Server 2005/2008/2008R2 (32-bit) | • Assign LPIM user right to SQL Startup account • Configure 'awe enabled' option to 1 | • Assign LPIM user right to SQL Startup account • Configure 'awe enabled' option to 1 | No support for "locked pages" |
SQL Server 2005/2008/2008R2 (64-bit) | • Assign LPIM user right to SQL Startup account | • Assign LPIM user right to SQL Startup account • Apply SQL Hotfix KBA 970070 • Enable trace flag 845 | No support for "locked pages" |
The LPIM user right refers to the "Lock Pages in Memory" Windows user right. This user right should be assigned to the SQL Server service startup account.
You do not have to use Trace Flag 845 in SQL Server 2012. You can remove this trace flag from the startup parameters after you upgrade your instance to SQL 2012.
Even though the "awe enabled" feature is not available in 32-bit SQL Server 2012, you can still use the "locked pages" feature by assigning the "lock pages in memory" user right for the SQL Server startup account.
When you enable "locked pages," it is very important to set an appropriate value for "max server memory" and for "min server memory" configuration options for each instance of SQL Server to avoid system-wide problems.
Use the following methods to determine whether the SQL Server 2012 instance is using "locked pages":
You do not have to use Trace Flag 845 in SQL Server 2012. You can remove this trace flag from the startup parameters after you upgrade your instance to SQL 2012.
Even though the "awe enabled" feature is not available in 32-bit SQL Server 2012, you can still use the "locked pages" feature by assigning the "lock pages in memory" user right for the SQL Server startup account.
When you enable "locked pages," it is very important to set an appropriate value for "max server memory" and for "min server memory" configuration options for each instance of SQL Server to avoid system-wide problems.
Use the following methods to determine whether the SQL Server 2012 instance is using "locked pages":
- The output of the following TSQL query will indicate nonzero values for locked_page_allocations_kb:
select osn.node_id, osn.memory_node_id, osn.node_state_desc, omn. locked_page_allocations_kb
from sys.dm_os_memory_nodes omn
inner join sys.dm_os_nodes osn on (omn.memory_node_id = osn.memory_node_id)
where osn.node_state_desc <> 'ONLINE DAC' - The current SQL Server error log will report the following message during server startup:
- The "Memory Manager" section of the DBCC MEMORYSTATUS output will show a nonzero value for the "AWE Allocated" item.The following table provides more information about the products or tools that automatically check for this condition on your instance of SQL Server and on the versions of the SQL Server product against which the rule is evaluated.
Collapse this table
Rule software | Rule title | Rule description | Product versions against which the rule is evaluated |
---|---|---|---|
SQL Server setup Upgrade Rules | LPIM check for x64 installations | Consider the following scenario on an X64 system:
This upgrade rule warns you about this change in behavior. | SQL Server 2008 SQL Server 2008 R2 |
SQL Server setup Upgrade Rules | LPIM check for x86 installations | Consider the following scenario on an X86 system:
| SQL Server 2008 SQL Server 2008 R2 |
3,
The following table indicates whether a specific type of memory allocation falls into the
memory_to_reserve region of virtual address space for the SQL Server process.
Collapse this table
Type of memory allocation | SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 | SQL Server 2012 |
---|---|---|
Single-page allocations | No | No, consolidated into "any size" page allocations |
Multi-page allocations | Yes | No, consolidated into "any size" page allocations |
CLR allocations | Yes | Yes |
Thread stacks memory | Yes | Yes |
Direct allocations from Windows | Yes | Yes |