Extending the Buffer Pool in SQL Server 2014 Increases Performance

By | In Blog, SQL Server | December 18th, 2013

One means of increasing your database’s performance is integrating high-speed solid-state drives with the data buffer pool extension found in Microsoft SQL Server 2014.

The extension to the Database Engine buffer pool significantly improves I/O throughput, and ultimately, the system’s performance.

As Microsoft explains:

“The primary purpose of a SQL Server database is to store and retrieve data, so intensive disk I/O is a core characteristic of the Database Engine. Because disk I/O operations can consume many resources and take a relatively long time to finish, SQL Server focuses on making I/O highly efficient. The buffer pool serves as a primary memory allocation source of SQL Server. Buffer management is a key component in achieving this efficiency.”

As data and index pages are read, and modified pages are read back to the disk, some of the active pages in the buffer cache can be written to disk and read back into the cache. These are random read-and-write operations consisting of between 4 and 14 KB of data. Although small, they compete for resources, and reduce latency and throughput.

The conventional approach to resolving these issues is to add more DRAM to the system. But DRAM is expensive. Spindles can be added –again at high cost.

Biz Nigatu, writing on the Database and Business Intelligence blog, notes:

“[B]uffer pool extension is a server configuration that could potentially help us resolve I/O bottlenecks without the usual method of adding more DRAM. … The buffer pool extension feature extends the buffer pool cache by accommodating a larger database working set, which forces the paging of I/Os between RAM and the SSDs. This effectively offloads small random I/Os from mechanical disks to SSDs.”

The net effect is that this improves the I/O throughput.

The benefits of the buffer pool extension feature, according to Microsoft, are:

  • Increased random I/O throughput
  • Reduced I/O latency
  • Increased transactional throughput
  • Improved read performance with a larger hybrid buffer pool
  • A caching architecture that can take advantage of present and future low-cost memory drives

IC655069

When working with the buffer pool extension, Microsoft suggests using a ratio between the size of the physical memory (max_server_memory) and the size of the buffer pool extension of 1:16 or less for the extension. It suggests trying a ratio ranging from 1:4 to 1:8 for optimal performance.

Another suggestion is to thoroughly test the buffer pool extension before adding it to a production environment. Then, once it is being used, don’t make configuration changes or turn off the extension; either may cause performance problems.

Microsoft does note that some of the information it has provided on buffer pool extension is subject to change upon the final release of SQL Server 2014. More information is available online.

Contact Us
Andy McDermid
Principal SQL Server DBA
Andy is a MCITP certified MS SQL DBA who delivers and manages delivery of DBA services to many diverse clients. He enjoys helping his clients by finding and deploying pragmatic and practical solutions for their database issues. Andy is always working to improve and expand his DBA skills and he likes to share the experience via writing.

Leave a Reply

Your email address will not be published.
Required fields are marked (*).