Vous avez plusieurs questions sur la structure interne de SQL Server.
Supposons que nous ayons une table dans une base de données.
Les pages SGAM et GAM gardent une trace des étendues partagées et uniformes dans un seul intervalle GAM (~ 4 Go), et nous aident à trouver le type d'étendue approprié lors de l'allocation des pages / extensions (initialement, les 8 premières pages sont allouées à partir d'extensions mixtes et les positions de ces pages sont l'enregistreur vers les pages IAM, puis les extensions GAM (étendues uniformes) et ces informations sont stockées dans la page IAM enchaînée suivante).
Disons que les pages du tableau ont été allouées et que la taille du tableau est supérieure à 8 pages, et un peu plus tard, les lignes ont été supprimées, laissant un espace réutilisable. Comment SQL Server sait que les étendues ont de l'espace libre?
Les pages contiennent des informations sur la taille de l'espace libre, mais il faut trop de temps pour vérifier chaque page. Les bits dans les pages SGAM et GAM ne nous disent rien à côté de l'extension qui est allouée ou a des pages gratuites (la page entière est gratuite, pas partiellement).
L'en-tête de fichier et les pages SGAM et GAM et IAM sont parmi les premières pages d'un fichier. Quelle structure de données pointe réellement vers eux?