Das Schrumpfen ist aus den hier genannten Gründen gefährlich. Es gibt ein glückliches Medium zwischen Jimbos Antwort und Johns Antwort ... Sie sollten sich immer ernsthaft überlegen, ob Sie Ihre Datenbank verkleinern möchten oder nicht.
In einer idealen Welt würden Sie Ihre Datenbank mit viel freiem Speicherplatz erstellen, in den Sie hineinwachsen können. Ich nenne das "Right Sizing" Ihre Datenbank. Sie würden zulassen, dass dieser freie Speicherplatz vorhanden ist, und nicht danach streben, ihn zurückzugeben, und Ihre Gesamtgröße auf der verwendeten Größe belassen. Warum? Weil Ihre Datenbank irgendwann wieder wachsen wird. Dann werden Sie wieder schrumpfen. Und Sie werden in diesem schrecklichen Muster nutzloser Schrumpfen gefangen sein, gefolgt von Wachstumsraten Erhöhen Sie Ihre Indexfragmentierung.
Ich habe darüber gebloggt, wo ich die Leute ermahnte: " Fass den Schrumpfknopf nicht an! ", Aber manchmal ... manchmal musst du. Wenn Sie über eine große Datenbank verfügen, nur erheblichen Speicherplatz freigegeben haben und nicht damit rechnen, jemals wieder in diese Datenbank hineinzuwachsen, ist es in Ordnung, das Verkleinern als einmalige Operation in Betracht zu ziehen, solange Sie sich anschließend durch Neuerstellung um Ihre Indexfragmentierung kümmern können Sie. Der Schrumpfvorgang kann zeitaufwendig sein, sodass Sie ihn für eine Zeit planen möchten, in der Sie den Preis für einen Schrumpfvorgang bezahlen können. Der Ansatz, eine leere Datenbank zu erstellen und Daten in diese zu kopieren, funktioniert - bei größeren Datenbanken und vielen Daten kann dies jedoch sehr schwierig werden.
Wenn Sie planen, diesen Speicherplatz durch normale Nutzung und Wachstumsmuster in der Zukunft wieder zur Datenbank hinzuzufügen, möchten Sie den Speicherplatz möglicherweise nur dort belassen.
Ebenfalls
Sie sagten, Sie hätten Ihr Transaktionsprotokoll "gelöscht". Ich bin gespannt, wie Sie das gemacht haben, aber wenn Sie den Beitrag lesen, den ich und die anderen in der Reihe geteilt habe, werden Sie einige Tipps zur Transaktionsprotokollverwaltung sehen. Kurz gesagt: Wenn Sie sich im vollständigen Wiederherstellungsmodus befinden, sollten Sie regelmäßige Protokollsicherungen durchführen, damit das Protokoll selbst wiederverwendet wird. Andernfalls - ohne Protokollsicherungen im vollständigen Modus - wächst die Protokolldatei ständig und wächst und wächst und speichert immer das, was Sie getan haben, weil Sie SQL mitgeteilt haben, dass Sie dieses Protokoll nicht nur für die Wiederherstellung nach einem Absturz verwalten, sondern auch beibehalten möchten Manuelle Sicherung, um Transaktionen abzuspielen / Transaktionen rückgängig zu machen, um sie zu einem bestimmten Zeitpunkt für Wiederherstellungszwecke wiederherzustellen.BEGIN TRAN ... do work.... COMMIT TRAN
oder ob Sie nur eine große DELETE
Anweisung ausgegeben und eine ganze Datenmenge in einer impliziten Transaktion gelöscht haben.)
Ich gehe auch davon aus, dass Sie diesen freien Speicherplatz in Ihrem Dateisystem suchen. Wenn Sie es in SQL und in dieser großen Datei suchen, kann es sein, dass Sie auf die Bereinigung der Geister warten, wenn Sie sofort nach Ihrer Operation suchen. Paul Randal bloggt über Ghost Cleanup .