2015-04-05 3 views
7

SQL Server speichert Daten in Seiten von 8k (8192) Bytes. In einer Datenseite sind 96 Bytes für den Seitenkopf reserviert. Unter Berücksichtigung der maximal zulässigen Kapazität von 8060 Bytes für eine Datenseite sind noch 36 Bytes übrig. Aber ich konnte keine Referenz finden, wo dieser 36-Byte-Block hingeht.SQL Server: Daten Seitengröße Verwirrung: 8060 + 96 Byte ist immer noch weniger als 8k Byte

Irgendwelche Hilfe?

+7

Siehe [Paul Randal ausgezeichnete Artikel zu dem Thema] (http://www.sqlskills.com/blogs/paul/inside-the-storage-engine-anatomy-of-a-page/) - neben dem 96-Byte Header auf der Seite, jede Seite benötigt auch Platz für das * Slot-Array * am Ende der Seite, das etwas Platz einnimmt. Oder [siehe diesen Simple-Talk-Beitrag auf der Seite internals] (https://www.simple-talk.com/sql/database-administration/sql-server-storage-internals-101/) –

+1

@marc_s Wenn die restlichen 32 Bytes gehen zu Slot-Array, dann kann jede Seite nicht mehr als 16 Zeilen enthalten, da jedes Element des Arrays 2 Bytes belegt, was keine korrekte Annahme ist. Darüber hinaus gibt es in SimpleTalk [link] (https://www.simple-talk.com/sql/database-administration/sql-server-storage-internals-101/) ein Bild, das die Anatomie einer Seite darstellt, die klar angibt Körper enthält Slot-Array. – Hans

+3

http://dba.stackexchange.com/q/15053/3690 –

Antwort

0

Es wurde keine feste Größe für Slot-Array/Zeilenversatz-Array angegeben.

Der Seitenkopf belegt die ersten 96 Bytes jeder Datenseite (, wobei 8,096 Byte für Daten, Zeilenkopf und Zeilenoffsets übrig bleiben). Aus diesem Grund kann die maximale Größe einer einzelnen Datenzeile 8.060 Bytes betragen.

Die Anzahl der Zeilen, die auf einer bestimmten Seite gespeichert werden, hängt von der Struktur und den gespeicherten Daten ab. Eine Tabelle mit allen Spalten mit fester Länge kann immer die gleiche Anzahl von Zeilen pro Seite speichern. Zeilen mit variabler Länge können so viele Zeilen speichern, wie es aufgrund der tatsächlichen Länge der eingegebenen Daten passt.

Zum Beispiel kann eine Seite mehr als 19 Zeilen enthalten, wobei jede Zeilengröße 403 Byte beträgt. In diesem Fall wäre die Größe der Slot-Arrays 38 Bytes.

Verwandte Themen