Buffer Pool Extension.
Applies to: Microsoft SQL Server 2014.
Buffer Pool Extension (BPE) is a new feature introduced by SQL Server 2014 that
can potentially increase performance of OLTP applications by allowing extension
of SQL Server buffer pool to a file located on a non-volatile disk (that could
be a Solid State Drive) with the purpose of storing clean pages only (dirty
pages cannot be stored on the buffer extension). The buffer pool extension
should be seen as a L2 cache where the standard buffer pool should be seen as
the L1 cache.
Limitations, considerations, recommendations.
- Recommended for read-intensive OLTP scenarios. Not recommended on OLAP.
- It's a feature available for 64-bit SQL Server only.
- It's a feature available for SQL Server 2014 Standard, Business Intelligence and Enterprise only.
- MSDN library says that the minimum size specified for BPE should be the value
of is the size of Max Server Memory, but based on my tests if you don't set the
size of BPE to a size greater than the Max Server Memory option, you may get
error message (Msg 868, level 16).
- The maximum limit is 32 times the size of Max Server Memory or RAM. For
optimal performance set BPE to a size 4 to 8 times the size of Max Server Memory
and avoid any changes to the size of the BPE.
- If BPE has been enabled and you want to modify the size of the file
used by BPE on the non-volatile disk, then you need to disable it first and set
the new size when you enable BPE again. If the size is less than previously set,
SQL Server must be restarted for the changes to take effect on the non-volatile
disk.
- The ALTER SERVER STATE privilege is required to enable BPE.
Related Dynamic Management Views.
Dynamic Management Views that are associated with BPE on SQL Server 2014
associated:
sys.dm_os_buffer_descriptors (a new column introduced is_in_bpool_extension).
sys.dm_os_buffer_pool_extension_configuration (a new DMV).
Related SQL Server Extended Events.
The following SQL Server Extended Events have been introduced in SQL Server
2012 related with the new BPE feature:
sqlserver.buffer_pool_extension_pages_evicted
sqlserver.buffer_pool_extension_pages_read
sqlserver.buffer_pool_extension_pages_written
sqlserver.buffer_pool_eviction_thresholds_recalculated
How to configure the instance for buffer pool extension.
The following example shows how to enable the buffer pool extension option and
specifies a file name and size.
References.
ALTER SERVER CONFIGURATION (Transact-SQL).
Buffer Pool Extension.