Data Buffer

O que é um BUFFER?

Dentro do SQL Server, Buffer é uma estrutura de tamanho fixo de 8KB utilizada para servir primariamente como cache de dados. Tanto a memória como os arquivos em disco são segmentados em páginas de 8Kb. Ao contrário dos demais Bancos de dados (Oracle, DB2, etc), esse tamanho é fixo e não pode ser alterado.

image

Dentro de uma página, encontram-se os registros de dados – também chamados de linhas ou rows. Essas informações são posicionadas através dos slots, que são ponteiros localizados no final de cada buffer. Isso permite que o conteúdo da informação fique localizado em qualquer região dentro da página, enquanto que o slot serve como uma referência para encontrá-la.

É comum referenciar uma página através da nomenclatura:

DBID:FILEID:PAGEID

Isso significa que um bloqueio PAGELOCK 2:1:2 corresponde a um bloqueio da página do Banco de dados 2 (TEMPDB), arquivo 1 (Tempdb.MDF) e offset 2 (2*8kb = 16KB).

As páginas de dados, ou buffers, são encontradas em memória ou nos arquivos de dados (MDF e NDF) – não são usados em arquivos de LOG.