Tem várias perguntas sobre a estrutura interna do SQL Server.
Vamos supor que temos uma tabela em um banco de dados.
As páginas SGAM e GAM acompanham as extensões compartilhadas e uniformes em um único intervalo GAM (~ 4 GB) e nos ajudam a encontrar o tipo apropriado de extensão ao alocar páginas / extensões (inicialmente as primeiras 8 páginas são alocadas a partir de extensões e posições mistas dessas páginas). gravador para as páginas do IAM e, depois, das extensões do GAM (extensões uniformes) e essas informações são armazenadas na próxima página do IAM em cadeia).
Digamos que as páginas da tabela foram alocadas, o tamanho da tabela é superior a 8 páginas e, algum tempo depois, as linhas foram excluídas, deixando algum espaço reutilizável. Como o SQL Server sabe que extensões têm espaço livre?
As páginas têm informações sobre o tamanho do espaço livre, mas é muito demorado verificar todas as páginas. Os bits nas páginas SGAM e GAM não nos dizem nada além do que a extensão está alocada ou tem algumas páginas gratuitas (a página inteira é gratuita, não parcialmente).
As páginas de cabeçalho do arquivo e SGAM, GAM e IAM estão entre as primeiras páginas de um arquivo. Que estrutura de dados realmente aponta para eles?
fonte