1,
The following table indicates whether a specific type of memory allocation is controlled by themax server memory (MB) andmin server memory (MB) configuration options.
Collapse this tableExpand this table
Type of memory allocationSQL Server 2005, SQL Server 2008, SQL Server 2008 R2SQL Server 2012Single-page allocationsYesYes, consolidated into "any size" page allocationsMulti-page allocationsNoYes, consolidated into "any size" page allocationsCLR allocationsNoYesThread stacks memoryNoNoDirect allocations from WindowsNoNo
2,
The following table provides the requirements to enable "locked pages" in different versions and editions of SQL Server on different platforms:
Collapse this tableExpand this table
Enterprise Edition,
Data Center EditionStandard Edition,
Business Intelligence EditionOther editionsSQL 2012 (32-bit and 64-bit)· Assign LPIM user right to SQL Startup account· Assign LPIM user right to SQL Startup accountNo 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 1No 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 845No 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":
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:
Using locked pages in the memory manager
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 ofSQL Server and on the versions of the SQL Server product against which the rule is evaluated.
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 tableExpand this table
Rule softwareRule titleRule descriptionProduct versions against which the rule is evaluatedSQL Server setup Upgrade RulesLPIM check for x64 installationsConsider the following scenario on an X64 system:
You install SQL Server [2008 R2, 2008, 2005] standard edition.
You grant the "Lock Pages in Memory" user right to the SQL Server service startup account.
You did not enable the trace flag 845, as a result the SQL Server instance did not use locked page allocations.
Now you attempt to upgrade this SQL Server instance to SQL Server 2012.
Now the upgraded SQL Server instance starts using locked page allocations.
This upgrade rule warns you about this change in behavior.SQL Server 2008
SQL Server 2008 R2SQL Server setup Upgrade RulesLPIM check for x86 installationsConsider the following scenario on an X86 system:
You install SQL Server [2008 R2, 2008, 2005] standard edition.
You grant the "Lock Pages in Memory" user right to the SQL Server service startup account.
You did not setup and configure the ‘awe enabled’ feature, as a result the SQL Server instance did not use locked pages allocations.
Now you attempt to upgrade this SQL Server instance to SQL Server 2012.
Now the upgraded SQL Server instance starts using locked page allocations.
This upgrade rule warns you about this change in behavior.SQL Server 2008
SQL Server 2008 R2
3,
The following table indicates whether a specific type of memory allocation falls into thememory_to_reserve region of virtual address space for the SQL Server process.
Collapse this tableExpand this table
Type of memory allocationSQL Server 2005, SQL Server 2008, SQL Server 2008 R2SQL Server 2012Single-page allocationsNoNo, consolidated into "any size" page allocationsMulti-page allocationsYesNo, consolidated into "any size" page allocationsCLR allocationsYesYesThread stacks memoryYesYesDirect allocations from WindowsYesYes