SQL TempDB auf RAMDisk oder PCI-E?

SQL TempDB auf RAMDisk oder PCI-E?

Ich fragteDasFrage bei dba.stackexchange

Da wir über 800 GB Arbeitsspeicher verfügen und die Datenbanken nur ca. 250 GB groß sind, planen wir, die TempDB-Dateien des SQL-Servers auf RAMDisk zu speichern, indem wir den Daten- und Protokolldateien 100 GB zuweisen, anstatt auf den aktuellen SSDs (SAN Tier 1), da unsere Anbieteranwendung sehr TempDB-intensiv ist.

Ist es besser als PCI-E-Karten? Uns geht es nur um die Geschwindigkeit, nicht um die Beständigkeit, da tempdb bei jedem Neustart von SQL gelöscht und neu erstellt wird.

Und wir bevorzugen WQHL-zertifizierte Anbieter. Gibt es welche, die man besonders auswählen oder meiden sollte?

Antwort1

TempDB wird von SQL Server nicht gelöscht/erstellt.Dateninnen ist es nicht erhalten, aber dieDateiensind. SQL Server erwartet, dass sie beim Start sauber sind, genau wie die Daten- und Protokolldateien einer Standarddatenbank.

Wenn Sie die TempDB-Dateien auf einer RAM-Disk erstellen, werden sie beim Neustart zerstört, was zum Absturz von SQL Server führt, da die Datenbank in einem sauberen Zustand vorliegen muss.

Ich denke, theoretisch könnte man eine Logik entwickeln

  1. Dabei wird ein „sauberer“ Satz von Baseline-TempDB-MDB-Dateien erstellt, die kopiert werden, während SQL Server heruntergefahren ist.
  2. und stellt sie auf dem RAM-Laufwerk wieder herVorSQL Server wird gestartet

Dies wäre jedoch umständlich und fehleranfällig, da Sie sicherstellen müssten, dass das Kopieren der Datei abgeschlossen ist, bevor der SQL Server-Engine-Dienst gestartet wird.

Ich verwende und empfehle die "SQL Server Setup Checklist" vomBrent Ozar, ErsthelferKit beim Erstellen von SQL Server. Es führt durch bewährte Methoden für SQL Server-Builds.

verwandte Informationen