2010-08-16 9 views
5

Aus irgendeinem Grund ist meine MDF-Datei 154gigs, aber ich nur 7 Gigs Wert von Daten aus flachen Dateien geladen. Warum ist die MDF-Datei so viel größer als die eigentlichen Quelldaten?MDF-Dateigröße viel größer als tatsächliche Daten

Weitere Informationen:

Nur ein paar Tische mit ~ 25 Millionen Zeilen. Keine großen varchar Felder (am größten ist 300, die meisten sind kleiner als varchar (50). Nicht sehr breite Tabellen < 20 Spalten. Auch keine der großen Tabellen sind indiziert. Tabellen mit Indizes haben weniger als 1 Million Zeilen. t Verwendung char, nur varchar für Streicher. Datentyp ist nicht das Problem.

stellte sich heraus, es war die Log-Datei, nicht die MDF-Datei. die MDF-Datei tatsächlich 24gigs ist, die mehr sinnvoll erscheint, aber immer noch groß IMHO.

UPDATE:

fixiert ich das Problem mit dem LDF (log-Datei) durch das Wiederherstellungsmodell von FULL zu einfachen Wechsel diese Ordnung ist, weil dieser Server nur für die interne Entwicklung und ETL-Verarbeitung verwendet wird. Kunden. Außerdem musste ich vor dem Wechsel zu SIMPLE die LOG-Datei verkleinern. Shrinking wird in den meisten Fällen nicht empfohlen. Dies war jedoch einer der Fälle, in denen die Protokolldatei nie so groß und so schnell gewachsen sein sollte. Für weitere Informationen siehe this

Antwort

3

Könnte eine Menge Gründe sein, vielleicht verwenden Sie char (5000) anstelle von varchar (5000), vielleicht verwenden Sie bigints anstelle von int, nvarchar wenn alles, was Sie brauchen, ist Varchar usw. etc usw. Vielleicht verwenden Sie viele Indizes pro Tabelle, die sich alle addieren. Vielleicht sind deine Auto-Jogging-Einstellungen falsch. Sie sind sicher, das ist die MDF und nicht die LDF-Datei richtig?

+0

Achten Sie auch auf zweifelhafte Füllfaktor auf Indizes - ich habe Indizes mehr als einmal mit Füllfaktor von 10% statt der vorgesehenen 90% angetroffen. :) –

+0

Auch Index Fragmentierung könnte ein Faktor sein. http://www.sqlmag.com/article/tsql3/automatic-reindexing.aspx – David

+1

Ich fühle mich albern. Es ist die Protokolldatei. –

4

Weil die MDF mit 154 GB zugewiesen wurde oder durch verschiedene Operationen auf 154 GB angewachsen ist. Eine Datenbankdatei hat mindestens die Größe der Daten darin, aber es kann um einen beliebigen Betrag größer als die verwendete Menge sein.

Eine offensichtliche Frage wird sein Wie messen Sie die Menge der Daten in der Datenbank? Haben Sie sp_spaceused verwendet? Hast du überprüft sys.allocation_units? Hast du es erraten?

Wenn die verwendete Größe tatsächlich 7 GB von 154 GB ist, dann sollten Sie es so lassen, wie es ist. Die Datenbank wurde von jemandem in dieser Größe sortiert oder ist gewachsen und wird wahrscheinlich wieder wachsen. Wenn Sie glauben, dass das Wachstum oder die Vordimensionierung zufällig war, dann gilt der vorherige Punkt immer noch und Sie sollten ihn so lassen, wie er ist.

Wenn Sie absolut positiv sind, ist die Überweisung ein Fehler, Sie können die Datenbank mit allen negative consequences of shrinking verkleinern.

+0

Gute Info. Ich bin kein DB-Administrator, aber ich werde etwas darüber nachlesen. Vielen Dank. –

0

Entweder AUTO SHRINK ist nicht aktiviert oder Die Anfangsgröße wurde auf den größeren Wert eingestellt.