Buffer Managment in SQL
Added 29 Jul 2008
SQL Server buffers pages in RAM
to minimize disc I/O. Any 8 KB page can be buffered in-memory, and the
set of all pages currently buffered is called the buffer cache. The
amount of memory available to SQL Server decides how many pages will be
cached in memory. The buffer cache is managed by the Buffer Manager.
Either reading from or writing to any page copies it to the buffer
cache. Subsequent reads or writes are redirected to the in-memory copy,
rather than the on-disc version. The page is updated on the disc by the
Buffer Manager only if the in-memory cache has not been referenced for
some time. While writing pages back to disc, asynchronous I/O is used
whereby the I/O operation is done in a background thread so that other
operations do not have to wait for the I/O operation to complete. Each
page is written along with its Checksum when it is written. When reading the page back, its checksum is
computed again and matched with the stored version to ensure the page
has not been damaged or tampered with in the mean time