Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Mit den folgenden Schritten können Sie den Umfang des Speicherplatzes schätzen, der zum Speichern von Daten in einem Heap erforderlich ist:
Geben Sie die Anzahl der Zeilen an, die die Tabelle enthalten wird:
- Num_Rows = Anzahl der Zeilen in der Tabelle
Geben Sie die Anzahl der Spalten mit fester und mit variabler Länge an, und berechnen Sie den Speicherplatz, der für deren Speicherung erforderlich ist:
Berechnen Sie den Speicherplatz, der zum Speichern jeder dieser Spaltengruppen innerhalb der Datenzeile erforderlich ist. Die Größe einer Spalte hängt von der Angabe für Datentyp und -länge ab.
- Num_Cols = Gesamtzahl der Spalten (mit fester und variabler Länge)
- Fixed_Data_Size = Gesamtzahl der Bytes in allen Spalten mit fester Länge
- Num_Variable_Cols = Anzahl der Spalten mit variabler Länge
- Max_Var_Size = Maximale gesamte Bytegröße aller Spalten variabler Länge
Ein Teil der Zeile, der als NULL-Bitmuster (Null_Bitmap) bezeichnet wird, wird für das Verwalten der NULL-Zulässigkeit der Spalte reserviert. Berechnen Sie dessen Größe:
- Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Nur der ganzzahlige Teil dieses Ausdrucks darf verwendet werden. Der Rest wird verworfen.
Berechnen Sie die Größe der Daten variabler Länge:
Wenn die Tabelle Spalten variabler Länge enthält, müssen Sie den Speicherplatz ermitteln, der von den Spalten innerhalb der Zeile verwendet wird:
- Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size
Die zu Max_Var_Size hinzugefügten Bytes dienen der Nachverfolgung der einzelnen Spalten mit variabler Länge. Bei dieser Formel wird angenommen, dass alle Spalten variabler Länge zu 100 % gefüllt sind. Wenn sich abzeichnet, dass ein niedrigerer Prozentsatz des Speicherplatzes für Spalten variabler Länge verwendet wird, können Sie den Wert Max_Var_Size mithilfe dieses Prozentsatzes anpassen, um einen genaueren Schätzwert für die Gesamtgröße der Tabelle zu erhalten.
Note
Sie können varchar-, nvarchar-, varbinary- oder sql_variant -Spalten kombinieren, mit dem Ergebnis, dass die definierte Tabellengesamtbreite größer als 8.060 Byte ist. Die Länge jeder einzelnen Spalte unterliegt auch weiterhin der Beschränkung von 8.000 Byte für eine Spalte des Typs varchar, nvarchar, varbinary oder sql_variant. Die kombinierten Breiten können jedoch den Grenzwert von 8.060 Byte in einer Tabelle überschreiten.
Wenn keine Spalten variabler Länge vorhanden sind, legen Sie Variable_Data_Size auf 0 fest.
Berechnen Sie die Gesamtzeilenlänge:
- = Row_Size + Fixed_Data_Size + Variable_Data_SizeNull_Bitmap + 4
Der Wert 4 in der Formel ist der Zeilenüberschriftenaufwand der Datenzeile.
Berechnen sie die Anzahl der Zeilen pro Seite (8.096 freie Bytes pro Seite):
- Rows_Per_Page = 8096 / (Row_Size + 2)
Da Zeilen keine Seiten umfassen, sollte die Anzahl der Zeilen pro Seite auf die nächste ganze Zeile abgerundet werden. Die Angabe 2 in der Formel bezieht sich auf den Eingang der Zeile in das Slotarray der Seite.
Berechnen Sie die Anzahl der Seiten, die zum Speichern aller Zeilen benötigt werden:
- = Num_Pages / Num_RowsRows_Per_Page
Die geschätzte Seitenanzahl muss auf die nächste ganze Seite aufgerundet werden.
Berechnen Sie den Speicherplatz, der zum Speichern der Daten im Heap erforderlich ist (8.192 Bytes pro Seite):
Heapgröße (Bytes) = 8.192 × Num_Pages
Diese Berechnung berücksichtigt nicht die folgenden Bedingungen:
Partitionierung: Der Speicherplatzaufwand bei der Partitionierung ist minimal, aber komplex zu berechnen. Es ist nicht wichtig, einzuschließen.
Zuordnungsseiten: Es gibt mindestens eine IAM-Seite, mit der die einem Heap zugeordneten Seiten nachverfolgt werden, aber der Platzaufwand ist minimal, und es gibt keinen Algorithmus, um genau zu berechnen, wie viele IAM-Seiten verwendet werden.
Werte für große Objekte (LOB): Der Algorithmus, der genau bestimmt, wie viel Speicherplatz verwendet wird, um die LOB-Datentypen varchar(max), varbinary(max), nvarchar(max), Text, ntextxml und Bildwerte zu speichern, ist komplex. Es genügt, die durchschnittliche Größe der erwarteten LOB-Werte zu berechnen und diese zur Gesamtheap-Größe zu addieren.
Komprimierung: Sie können die Größe eines komprimierten Heaps nicht vorab berechnen.
Spalten mit geringem Abstand: Informationen zu den Platzanforderungen von Spalten mit geringem Abstand finden Sie unter Verwenden von Spalten mit geringem Abstand.
Verwandte Inhalte
- Heaps (Tabellen ohne gruppierte Indizes)
- Gruppierte und nicht gruppierte Indizes
- Erstellen eines gruppierten Indexes
- Erstellen nicht gruppierter Indizes
- Schätzen der Größe einer Tabelle
- Schätzen der Größe eines gruppierten Indexes
- Schätzen der Größe eines nicht gruppierten Indexes
- Schätzen der Größe einer Datenbank