Benutzer mit den meisten Antworten
SQL Server Dateigröße verkleinern

Frage
-
Hallo,
durch das Löschen von Datenbanktabellen verringert sich beim SQL Server nicht zwingend und automatisch die Dateigröße. Der SQL Server behält sich den hinzugekommenen freien Speicher vor.
Wie kann ich die Verkleinerung der Dateigröße des SQL Server (auch Express) über ADO.NET anstoßen?
Ist diese Operation sehr zeitaufwendig bzw. benötigt sie viel Ressourcen?
Danke und viele Grüße,
Christian
Antworten
-
Hallo Christian,
der SQL Server verkleinert normalerweise nie (Ausnahme: AutoShrink ist an) die Datenbank-Dateien, weil es zum einen unnötig zeitaufwendig ist und reichlich I/O Ressourcen benötigt. Zudem verursacht das weitere Probleme, nämlich das die Indizes dann stark fragmentieren und das wiederum zu Performanz-Problemen führt. Man sollte vom Datenbank-Verkleinern Abstand nehmen.
Wenn es aber doch sein muss, es gibt dafür die Transact-SQL Befehle:
DBCC SHRINKDATABASE (Transact-SQL) für alle Datenbankdateien
DBCC SHRINKFILE (Transact-SQL) für eine DateiOlaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert ChristianHavel Dienstag, 16. Juni 2015 14:04
-
Hallo,
ergänzend zu Olaf möchte ich Anmerken, dass sich die Datenbankdatei in der Regel wieder aufbläht. Daher ist verkleinern in der Regel keine Lösung.Viele Grüße Holger M. Rößler
- Als Antwort markiert ChristianHavel Dienstag, 16. Juni 2015 14:04
Alle Antworten
-
Hallo Christian,
der SQL Server verkleinert normalerweise nie (Ausnahme: AutoShrink ist an) die Datenbank-Dateien, weil es zum einen unnötig zeitaufwendig ist und reichlich I/O Ressourcen benötigt. Zudem verursacht das weitere Probleme, nämlich das die Indizes dann stark fragmentieren und das wiederum zu Performanz-Problemen führt. Man sollte vom Datenbank-Verkleinern Abstand nehmen.
Wenn es aber doch sein muss, es gibt dafür die Transact-SQL Befehle:
DBCC SHRINKDATABASE (Transact-SQL) für alle Datenbankdateien
DBCC SHRINKFILE (Transact-SQL) für eine DateiOlaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert ChristianHavel Dienstag, 16. Juni 2015 14:04
-
Hallo,
ergänzend zu Olaf möchte ich Anmerken, dass sich die Datenbankdatei in der Regel wieder aufbläht. Daher ist verkleinern in der Regel keine Lösung.Viele Grüße Holger M. Rößler
- Als Antwort markiert ChristianHavel Dienstag, 16. Juni 2015 14:04
-
Hallo,
das mag doch etwas seltsam klingen, dass der Server die Datenbank nicht verkleinert.
Aber so gesehen ist das recht schlau, denn Speicher ist heutzutage billig wie nie, es würde sich nicht lohnen.
Mittlerweise gibt es ja sogar 10TB Festplatten, Tendenz steigend.© 2015 Thomas Roskop
Germany // Deutschland -
das mag doch etwas seltsam klingen, dass der Server die Datenbank nicht verkleinert.
Nur als Ergänzung:
http://www.insidesql.org/blogs/uricken/2013/09/08/dbcc-shrinkdatabase-wirklich-ein-segen
http://www.brentozar.com/archive/2009/08/stop-shrinking-your-database-files-seriously-now/
http://blog.sqlauthority.com/2011/01/19/sql-server-shrinking-database-is-bad-increases-fragmentation-reduces-performance/
Olaf Helper
[ Blog] [ Xing] [ MVP]