Haben Sie mehrere Fragen zur internen Struktur von SQL Server.
Nehmen wir an, wir haben eine Tabelle in einer Datenbank.
SGAM- und GAM-Seiten verfolgen gemeinsam genutzte und einheitliche Ausdehnungen innerhalb eines einzelnen GAM-Intervalls (~ 4 GB) und helfen uns bei der Zuweisung geeigneter Ausdehnungsarten bei der Zuweisung von Seiten / Ausdehnungen (anfänglich werden die ersten 8 Seiten aus gemischten Ausdehnungen und Positionen dieser Seiten zugewiesen Rekorder auf IAM-Seiten und danach von GAM-Extents (einheitliche Extents) und diese Informationen werden auf der nächsten verketteten IAM-Seite gespeichert).
Angenommen, die Seiten für die Tabelle wurden zugewiesen, und die Tabellengröße beträgt mehr als 8 Seiten. Einige Zeit später wurden Zeilen gelöscht, sodass wiederverwendbarer Speicherplatz übrig blieb. Woher weiß SQL Server, dass Extents freien Speicherplatz haben?
Seiten enthalten Informationen zur Größe des freien Speicherplatzes, es ist jedoch zu zeitaufwändig, jede Seite zu überprüfen. Bits auf SGAM- und GAM-Seiten sagen nichts darüber aus, dass diese Erweiterung zugewiesen ist oder einige freie Seiten enthält (die gesamte Seite ist kostenlos, nicht teilweise).
Dateikopf- & SGAM- & GAM- & IAM-Seiten gehören zu den ersten Seiten innerhalb einer Datei. Welche Datenstruktur weist tatsächlich auf sie hin?
quelle