Jeder warnt davor, eine Datenbank zu verkleinern, aber wird es in meinem Fall funktionieren? 1 GB Datenbank mit entfernten Tabellen jetzt 100 MB

7

Jeder warnt vor dem Verkleinern einer Datenbank, z. B. SQLAuthority

Aber wird es in meinem Fall eine gültige Option sein? Die Datenbank hatte ursprünglich mehr als 1 GB, aber wenn eine Tabelle daraus entfernt (in eine andere Datenbank verschoben) wurde, beträgt die Datenbank jetzt 100 MB, wenn ich eine Sicherungskopie davon mache, im Gegensatz dazu, dass die MDF immer noch mehr als 1 GB beträgt.

Was passiert, wenn ich die Datenbank verkleinere und dann alle Indizes neu erstelle? Ist das alles noch tabu?

Peter PitLock
quelle

Antworten:

7

Eine 1-GB-Datenbank ist in Bezug auf den Speicher so gut wie nichts. Wenn Sie wirklich Platz auf dieser Ebene sparen möchten, kann ich die Umgebungsspezifikationen in Frage stellen. Selbst auf einer kleinen Box ist 1 GB vernachlässigbar.

Ich empfehle Ihnen, sich über die Probleme beim Verkleinern Ihrer Datenbankdateien (insbesondere Ihrer Datendateien) zu informieren. Paul Randal hat einen großartigen Artikel zu diesem Thema geschrieben. Die Moral hier ist zu wissen, was passiert und was Sie mit Ihren Daten tun . Wenn dies akzeptabel ist und das Unternehmen die kleinere Datenbank verlangt, gehen Sie vorsichtig vor. Ich werde Paul Randal mit seiner empfohlenen Praxis in einer Situation wie dieser zitieren :

Was also , wenn Sie noch einen Schrumpf laufen müssen? Wenn Sie beispielsweise einen großen Teil einer sehr großen Datenbank gelöscht haben und die Datenbank wahrscheinlich nicht wächst, oder wenn Sie eine Datei leeren müssen, bevor Sie sie entfernen?

Die Methode, die ich empfehlen möchte, lautet wie folgt:
- Erstellen einer neuen Dateigruppe
- Verschieben Sie alle betroffenen Tabellen und Indizes mit der Syntax CREATE INDEX… WITH (DROP_EXISTING = ON) ON in die neue Dateigruppe, um die Tabellen zu verschieben und die Fragmentierung von ihnen zu entfernen zur gleichen Zeit
- Löschen Sie die alte Dateigruppe, die Sie sowieso verkleinern wollten (oder verkleinern Sie sie ganz nach unten, wenn es sich um die primäre Dateigruppe handelt).

Grundsätzlich müssen Sie etwas mehr Speicherplatz bereitstellen, bevor Sie die alten Dateien verkleinern können, aber dies ist ein viel saubererer Mechanismus .

Muss Ihre Datenbank nie wieder auf diese Größe wachsen? Dies ist die Hauptfrage, die bei der Verkleinerung einer Datenbank im Vordergrund stehen sollte. Es geht um die richtige Dimensionierung, nicht nur für heute, sondern für die langfristig absehbare Zukunft .

Und, was am wichtigsten ist, machen Sie diesen Teil nicht zur routinemäßigen Wartung . Gründe dafür finden Sie in Pauls Blogbeitrag.

Thomas Stringer
quelle
3

Ja, durch Verkleinern der Datenbank wird die Datenbankgröße verringert. Und ja, durch das Neuerstellen von Indizes wird die Datenbankgröße erneut erhöht, sodass Sie wieder auf dem ersten Platz sind

Ich habe hier die beste Sammlung von Artikeln zum Thema "Warum nicht verkleinern" gefunden: Stoppen Sie das Verkleinern Ihrer Datenbankdateien. Ernsthaft. Jetzt.

Was auch immer Sie tun - verkleinern Sie Ihre Datenbank nicht. Lassen Sie stattdessen Ihre Festplatte bereinigen, um genügend Speicherplatz für Ihre Datenbank freizugeben. Beachten Sie die Empfehlungen von Paul Randal:

  • Stellen Sie sicher, dass Sie die Größe der Datendateien mit etwas freiem Speicherplatz festlegen
  • Auto-Wachstum entsprechend eingestellt haben
  • Aktivieren Sie die sofortige Dateiinitialisierung, wenn Sie können
  • Überwachen Sie die Dateigröße und -nutzung
  • Alarm bei automatischem Wachstum

Bedeutung der Verwaltung der Datendateigröße

Carol Baker West
quelle
0

Ich habe Fälle wie diesen gesehen und auch solche, in denen Shrink überhaupt nichts bewirkt (obwohl die Datenbank vollständig leer ist). Aus persönlicher Erfahrung sind sie jedoch nur wenige im Vergleich zu der erwarteten Häufigkeit, mit der es funktioniert hat. Wenn Sie sich darüber Sorgen machen, nehmen Sie eine Kopie der Datenbank, legen Sie sie in eine Testumgebung und probieren Sie sie zuerst dort aus. Nur so kann man es wirklich genau wissen.

Weltweiter DBA
quelle