2016-08-09 131 views
0

Angenommen, meine SQL Server-Datenbank ist auf einer 1-GB-Festplatte installiert. Nun, dass ich Tabellen mit einer Endlosschleife in dieser Datenbank erstellen, aber keine Zeilen zu einer beliebigen Tabelle hinzufügen. Nach wie vielen Tabellen wird meine DB (von 1 GB Speicherplatzlimit) die Speicherplatzgrenze überschreiten und die Schleife unterbrechen.Was wäre die Größe der Schemadaten einer einzelnen Tabelle (Metadaten) in einer Datenbank?

+0

Sie stellen hier zwei sehr unterschiedliche Fragen. SQL Server versucht, zusätzlichen Festplattenspeicher zuzuweisen, bevor die aktuelle Datendatei mit den tatsächlichen Daten gefüllt wird. –

+1

Versuchen Sie es und lassen Sie uns wissen, was kommt :) – NickyvV

+0

Weiß nicht, wie viel es tatsächlich wäre, aber es wird sehr davon abhängen, wie lange Sie Objektnamen sind, wie viele Spalten es hat und die Länge ihrer Namen. Die Anzahl der Einschränkungen und deren Länge. – MWillemse

Antwort

1

Von MSDN

table_size = (size of each index added together) + (row size * row count) 

Also für eine Tabelle ohne Zeilen oder Datensätze, die Antwort ist nicht viel Platz, können so große Mengen von Tabellen

erstellt werden
+0

meine tatsächliche Anforderung, die zu kennen sizeof Informationen der Metadaten jeder Tabelle ohne die Daten in den Zeilen ... – h4it

+0

Warum brauchen Sie die Informationen trotzdem? – David

1

Es hängt von ein paar Dinge ; Wie viele Spalten fügen Sie zu jeder Tabelle hinzu? Jeder Spaltenname kann bis zu 128 Bytes umfassen. Typinfo (system_type_id, user_type_id) und object_id werden ebenfalls einige Bytes benötigen.

Laufen Sie mit Trace-Flag 1117 und/oder 1118? Wenn ja, wird der Tabelle statt einer 8-kB-Seite ein Extent von 64 kB zugewiesen. EDIT: Dies wird nicht zugeordnet, wenn die Tabelle erstellt wird, nur wenn die erste Zeile hinzugefügt wird. Wenn alle Zeilen gelöscht werden, "gehört" die erste Seite/Ausdehnung immer noch zur Tabelle.

Fügen Sie einen Index hinzu? Wenn ja, dann wird es Zeilen in sys.indexes geben.

Sind Ihre Tabellen partitioniert? Dann werden viele Bytes hinzugefügt.