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ß
Ich glaube wenn du ein Backup fährst wird die datei wieder kleiner da das Transaktionslog dann gesäubert wird.
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.
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
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.