Laden...

mdf-Datei verkleinern/shrinken

Erstellt von ravel vor 14 Jahren Letzter Beitrag vor 14 Jahren 4.517 Views
R
ravel Themenstarter:in
169 Beiträge seit 2007
vor 14 Jahren
mdf-Datei verkleinern/shrinken

verwendetes Datenbanksystem: MSSQL 2008 express

Hi,

ich habe eine Datenbank als mdf im visual web developer. Die mdf-Datei hat eine Größe von 107mb. Ich habe dann aus meinen 11.000 rows an dummy-daten 10.000 rows gelöscht, trotzdem ist die datei nicht kleiner geworden. wie kann ich es anstellen, dass datei ge-shrinked bzw. verkleinert wird? oder geschieht das automatisch? die express-version hat ja eine größenbeschränkung von 4GB.

danke und gruß

151 Beiträge seit 2003
vor 14 Jahren

Ich glaube wenn du ein Backup fährst wird die datei wieder kleiner da das Transaktionslog dann gesäubert wird.

U
1.688 Beiträge seit 2007
vor 14 Jahren

die express-version hat ja eine größenbeschränkung von 4GB.

Zumindest das sollte egal sein - Du kannst wieder 10000 Datensätze hinzufügen, ohne dass die Datei größer wird.

446 Beiträge seit 2004
vor 14 Jahren

Datensätze aus einer ms sql Datenbank zu löschen in der hoffnung, dass die mdf Datei kleiner ist meines erachtens sinnlos.

(Natürlich wird die mdf Datei kleiner, wenn man große Datensätze aus der Datenbank löscht, aber die relation zur Dateigröße der mdf Datei sind verschwindend gering.)

Die DB macht in der File laufend Optimierungen damit du die Daten möglichst schnell abrufen kannst.

Wenn du die mdf Datei spürbar kleiner haben willst, zip sie. Allerdings funktioniert das nicht während dem betriebt des DB Dienstes. Das man die Datei danach nicht mehr Benutzen kann sollte klar sein.

Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp

X
1.177 Beiträge seit 2006
vor 14 Jahren

huhu

DBCC SHRINKDATABASE 
DBCC SHRINKFILE

Zusätzlich kann man in den Optionen angeben, dasss die DB automatisch verkleinert werden soll. Die Expressversionen hatten immer das Transaktionsprotokoll ausgeschalten - ob das bei der 2008er noch so ist weis ich jetzt nicht. Das wären aber die LDF-Files.

Die Datendateien werden per default nicht kleiner, nur weil man Datensätze löscht. Die Daten stehen an bestimmten Positionen in der Datei und werden auch nicht plötzlich nach vorne verschoben, nur weil da Platz ist. Gelöschte Datenbankseiten werden nur als gelöscht/zur Verfügung markiert - für neue Daten. Ein Backup verkleinert auch keine Datei automatisch. Das passiert nur bei Transaktionsprotokollen, wenn hier diese Option beim Backup explizit angegeben ist (aber auch nur wenn ein sauberes Voll-Backup existiert).

Per Wartungsplan kann man ein verkleinern, optimieren und reindizieren ebenfals anwerfen.

Zippen bringt nur dann was, wenn die DB nicht benutzt werden soll. Wie sollte der SQL-Server auch auf eine gepackte DB zugreifen!?

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.