Ich hatte eine Tabelle mit mehr als 70 Millionen Datensätzen in einer SQL Server-Datenbank. Ich habe diese Tabelle gelöscht (eine einmalige Sache), um Speicherplatz auf der Festplatte freizugeben, aber es sieht so aus, als hätte sich die Größe nicht wesentlich geändert. Ich sehe, dass ich die Datenbank auf ein Minimum verkleinern könnte.
Ist das der Weg, es zu tun?
Das letzte Mal, als ich mit SQL Server Management Studio verkleinert habe, dauerte es einige Stunden. Gibt es einen schnelleren Weg?
Schrumpfen ist ein ziemlich teures Verfahren und kann Stunden dauern. Um den Speicherplatz am effizientesten zu nutzen, können Sie Tabellen in eine neue Dateigruppe mit vorgefertigten Clustered-Indizes übertragen und vorherige löschen. Ich persönlich bevorzuge dies, weil es einfacher ist, dieses "Schrumpfen" in mehreren Schritten und vorhersehbarer zu machen - also einfacher zu planen. Wenn Sie DBCC SHRINK starten, wissen Sie nicht, wie viel Zeit es dauern wird.
Update (Dank an mrdennny für den Hinweis): Dies ist ein sehr spezifischer Ansatz und kann nur verwendet werden, wenn Sie über eine schreibgeschützte Datenbank (wie Data Warehouse) verfügen, da beim Kopieren von Daten in eine andere Tabelle keine Schreibvorgänge in diese Tabelle für die Tabelle zulässig sind der Konsistenz zuliebe. Um Zeit zu sparen und die maximale Leistung zu erzielen, können Sie die Datenbank auf das SIMPLE-Wiederherstellungsmodell umstellen und den TABLOCK-Hinweis verwenden. Dadurch kann das System nur minimale Protokollierung verwenden und viel weniger in das Transaktionsprotokoll schreiben.
quelle
Lesen Sie diesen Artikel: http://itknowledgeexchange.techtarget.com/sql-server/deleting-lob-data-and-shrinking-the-database/
"Die Lösung, die wir gefunden haben, war eigentlich ziemlich einfach. Führen Sie das Löschen der Datenbank wie gewohnt durch. Sichern und Wiederherstellen der Datenbank. Führen Sie dann das Verkleinern durch, und erstellen Sie anschließend die Clustered-Indizes neu, um das durch das Verkleinern verursachte Fragmentierungsproblem zu beheben . "
quelle