Ein Reorganisieren-und-Schrumpfen ist eigentlich nie zu empfehlen.
Wenn Sie die Apps, die von der Datenbank bereitgestellt werden, offline schalten können, können Sie den Prozess beschleunigen und die Indexfragmentierung reduzieren, indem Sie vor dem Verkleinern alle Indizes und Primär- / Fremdschlüsseleinschränkungen entfernen (dies bedeutet, dass weniger Daten verschoben werden müssen als nur die Datenseiten werden gemischt, nicht die jetzt nicht vorhandenen Indexseiten, was den Prozess beschleunigt. Erstellen Sie dann alle Indizes und Schlüssel neu.
Wenn Sie die Indizes nach dem Verkleinern neu erstellen, sollten sie nicht wesentlich fragmentiert sein. Wenn Sie sie während des Verkleinerns nicht mehr verwenden, führt dies nicht zu vielen kleinen "Löchern" in der Seitenzuordnung in den Dateien, die später zu einer Fragmentierung führen können.
Eine andere Option, wenn Sie die Anwendungen offline schalten können, besteht darin, alle Daten in eine neue Datenbank derselben Struktur zu migrieren. Wenn Ihr Erstellungsprozess solide ist, sollten Sie in der Lage sein, diese leere Datenbank schnell zu erstellen, wenn Sie keine aus der aktuellen Datenbank erstellen (stellen Sie eine Sicherung der aktuellen wieder her, kürzen / löschen Sie alle Inhalte in den Tabellen und führen Sie eine vollständige Verkleinerung durch).
Möglicherweise möchten Sie dennoch alle Indizes im Ziel löschen und anschließend neu erstellen, da dies beim Ändern vieler indizierter Daten (in diesem Fall zu 100%) sehr viel effizienter sein kann. Um den Kopiervorgang zu beschleunigen, müssen Sie die Datendateien der Zieldatenbank auf verschiedenen physischen Laufwerken zur Quelle haben (es sei denn, Sie verwenden SSDs. In diesem Fall müssen Sie sich nicht um die Reduzierung der Kopfbewegungen kümmern). Sie können sie verschieben an den Quellspeicherort, wenn Sie fertig sind.
Wenn Sie das Ziel als neu erstellen (anstatt eine Kopie der Quelle auszublenden), erstellen Sie es mit einer Anfangsgröße, die alle aktuellen Daten sowie einige Monate Wachstum enthält. Dadurch werden die Daten wieder ein wenig schneller kopiert Es wird während des gesamten Vorgangs nicht ab und zu neuer Speicherplatz zugewiesen.
Dies ist möglicherweise besser als die Verwendung von "Verkleinern", da durch die Migration der Daten in eine neue Datenbank die beabsichtigte Aktion des Verkleinerungsvorgangs repliziert wird, jedoch möglicherweise eine weitaus geringere Fragmentierung auftritt (was die unbeabsichtigte Folge einer Reorganisation und Verkleinerung ist). Bei einem Verkleinerungsvorgang werden nur Blöcke vom Ende der Datei entfernt und am Anfang an die erste Stelle verschoben, ohne dass die zugehörigen Daten zusammengehalten werden müssen.
Ich vermute, dass das Ergebnis auch platzsparender sein wird, da es danach wahrscheinlich weniger teilweise genutzte Seiten gibt. Durch einen Verkleinerungsvorgang werden nur teilweise verwendete Seiten verschoben. Das Verschieben der Daten führt mit größerer Wahrscheinlichkeit zu vollständigen Seiten, insbesondere wenn Sie in der Reihenfolge des gruppierten Schlüssels / Index einer Tabelle (sofern eine Tabelle einen hat) in das Ziel einfügen und andere Indizes erstellen nachdem die Daten alle migriert sind.
Natürlich , wenn man die Apps überhaupt nicht offline nehmen, nur eine Schrumpf Durchführung ist Ihre einzige Option wenn Sie also wirklich den Raum gehen mit , dass zurückzufordern müssen. Abhängig von Ihren Daten, Zugriffsmustern, der allgemeinen Größe des Arbeitsspeichers, dem Arbeitsspeicher des Servers usw. ist die zusätzliche interne Fragmentierung am Ende möglicherweise nicht so bedeutend.
Für den Kopiervorgang würde entweder SSIS oder Basis-T-SQL genauso gut funktionieren (die SSIS-Option ist möglicherweise weniger effizient, lässt sich aber möglicherweise später einfacher warten). Wenn Sie die FK-Beziehungen am Ende zusammen mit den Indizes erstellen, können Sie in beiden Fällen einfach "für jede Tabelle kopieren". Natürlich ist eine einmalige Neuorganisation mit Shrink + wahrscheinlich auch in Ordnung, aber ich erschrecke die Leute nur gerne, wenn sie nie daran denken, regelmäßig zu schrumpfen! (Ich habe gewusst, dass die Leute sie täglich planen).