it-swarm.com.de

Was ist die beste Vorgehensweise für das automatische Wachstum von Tempdb?

Ich habe einen Client-Server mit ungefähr 15 Datenbanken auf dieser Instanz mit einer Datengesamtmenge von ungefähr 100 GB. Eine der Datenbanken ist für eine Sysaid-App. seine temp db dateien sind ein mdf ein ndf und natürlich ein ldf. Das MDF befindet sich auf demselben Laufwerk wie die anderen MDFs. Wenn also die LDF-Datei.

Wenn ich die Autogrowth-Eigenschaften einstelle, weiß ich, dass ich sie als uneingeschränktes Wachstum beibehalten sollte, aber wenn ich zwischen Autogrowth um% oder MB wählen muss, was soll ich wählen? und woher weiß ich, welche Nummer ich konfigurieren soll?

Danke im Voraus!

7
sql_girl

Für mich ist es die beste Vorgehensweise, die Dateien zu Beginn nur so groß zu machen, dass sie den erwarteten Zuwächsen Rechnung tragen.

Verwenden wir einige einfache Zahlen. Angenommen, Sie haben ein 100-GB-Laufwerk, das Sie tempdb zugewiesen haben (oder 100 GB eines gemeinsam genutzten Laufwerks). Ihre Instanz verfügt über 4 Tempdb-Dateien, und Sie haben beschlossen, diese zunächst auf 100 MB festzulegen und jeweils 10 MB zu vergrößern. Das 100-GB-Laufwerk oder Slice sieht zunächst so aus (natürlich nicht maßstabsgetreu):

(enter image description here

Da Ihr System Tempdb-Ressourcen verwendet, wächst jede Tempdb-Datei um 10 MB, indem Sie 10 MB quälen. Nach ein paar Wucherungen:

(enter image description here

Beachten Sie, dass jedes Wachstumsereignis, obwohl es wahrscheinlich schnell ist, alle Verbindungen zum Warten zwingt. Dies ist ausgeprägter, wenn die sofortige Dateiinitialisierung nicht aktiviert ist und wenn die Dateien so konfiguriert sind, dass sie zusammenwachsen (was in einigen Versionen ein Ablaufverfolgungsflag erfordert, dies ist jedoch die richtige Vorgehensweise, da keine einzelne Datei verwendet werden soll größer sein als die anderen).

Wenn Sie das Ende des Laufwerks erreicht haben, können nicht alle 4 Dateien gleichzeitig wachsen . Und dies ist ein Business Continuity-Ereignis. Wenn Tempdb hier nicht wachsen kann, wird die Aktivität angehalten:

(enter image description here

Wenn Sie jetzt an diesen Punkt gelangen, müssen Sie sich darüber im Klaren sein, dass Sie entweder die Art und Weise ändern müssen, in der Sie Tempdb verwenden, oder dass 100 GB nicht ausreichen und Sie mehr Speicherplatz zuweisen müssen. Aber ich würde argumentieren, dass es besser ist, einfach hier zu beginnen und diese Größe für Ihre anfänglichen Tempdb-Datendateigrößen zu konfigurieren:

(enter image description here

Technisch gesehen würde ich sie beispielsweise auf jeweils 20 GB mit einem automatischen Wachstum von 500 MB einstellen. Auf diese Weise können Sie immer noch rechtzeitig vor dem Auffüllen des 100-GB-Slice gewarnt werden, ohne jedoch in der Zwischenzeit für all diese inkrementellen Dateizuwächse zu zahlen.

Wenn Tempdb wächst, um diesen Raum zu füllen, ist es schließlich nicht so, dass Sie es für irgendetwas anderes verwenden können.

welche Größe soll ich das Autogrowth geben

Es gibt keine magische Zahl (die Standardeinstellungen waren traditionell viel zu konservativ für den praktischen Gebrauch, aber dies wird besser). Ihre Einstellung für das automatische Wachstum basiert auf den Leistungsmerkmalen Ihrer Festplatte und der erwarteten Wachstumsrate. Wenn Sie eine SSD oder ähnliches haben und IFI aktiviert haben, hängt die Größe wahrscheinlich viel mehr davon ab, wie viel Warnung Sie haben möchten, bevor Sie das Ende des Slice erreichen. Wenn Sie über dünne, mechanische Laufwerke verfügen und/oder IFI nicht aktiviert haben, möchten Sie wahrscheinlich verschiedene Einstellungen testen und feststellen, wo die Zeit, die zum Erweitern der Datei um unterschiedliche Beträge benötigt wird, Ihre Toleranz für alle Transaktionen auf dem System erfüllt warten.

9
Aaron Bertrand