SQL Server - Como as páginas de dados são armazenadas ao usar um índice em cluster

13

Recentemente, ouvi dizer que as páginas de dados em um índice clusterizado não são armazenadas de forma contígua. Isso é verdade?

Talvez as páginas de dados sejam normalmente armazenadas contíguas, com algumas exceções à regra? Ou talvez eu tenha ouvido errado e a página de dados seja sempre armazenada de forma contígua.

Muito Obrigado.

Amendoim
fonte
1
O Books Online possui bons diagramas que mostram como as páginas são fisicamente armazenadas e como a árvore B é organizada.
mrdenny

Respostas:

11

As páginas de dados são armazenadas contiguamente quando o índice é criado e quando o índice é reconstruído. Caso contrário, o SQL Server tentará manter as páginas em ordem física. Isso não sendo possível, a ordem lógica é tentada. Você pode obter lacunas em uma tabela devido a outras gravações que estão acontecendo no banco de dados. O SQL Server usa árvores B + para índices - o nível folha (dados) do índice contém os dados, mas também é uma lista duplamente vinculada que contém ponteiros para as páginas seguintes e anteriores. Isso torna menos importante que a tabela seja 100% fisicamente contígua.

Jeremiah Peschka
fonte