Antworten:
Es kommt darauf an, was Sie unter "All in RAM" verstehen.
Wenn Sie Ihre Datenbank von einem RAM-Laufwerk ausführen möchten, werden Sie feststellen, dass dies wahrscheinlich nicht möglich ist (es sei denn, Sie haben eine RAM-Laufwerkskarte, die für das Betriebssystem wie eine normale Festplatte aussieht, dh eine SATA- oder PATA-Schnittstelle aufweist). als SQL Server wird ablehnen. Es wird davon ausgegangen, dass alle von ihm geschriebenen Daten wichtig genug sind, um aufbewahrt zu werden, und dass sie nicht riskiert werden, wenn sie auf ein flüchtiges Speichermedium geschrieben werden. Sie können es möglicherweise täuschen, indem Sie es in einer VM ausführen und diese VM von einem RAM-Laufwerk ausführen. Ich würde jedoch nicht empfehlen, dies beide aus demselben Grund zu versuchen (Sie verlieren alle Daten, wenn ein Stromausfall oder ein Neustart auftritt). und aufgrund der Tatsache, dass es eine Sammlung anderer Leistungstreffer aus der Virtualisierungslösung geben würde, über die man sich Sorgen machen müsste.
Wenn Ihr Problem eine langsame Leseaktivität ist (dh viele Vorgänge, die zum Lesen von der Festplatte führen, erhöhen Sie einfach die RAM-Größe des Computers, um größer als der übliche Arbeitssatz oder besser noch größer als die gesamte Datenbank zu sein. Sofern Sie nicht über eine SQL Server-Edition verfügen, die künstliche RAM-Beschränkungen auferlegt (IIRC Express Edition verwendet nicht mehr als 1 GB), wird die Speicherfülle verwendet, um alles, was gelesen wird, im RAM zwischengespeichert zu halten, damit es beim nächsten Mal schnell gelesen werden kann Wenn Sie die Daten jederzeit nach dem Löschen in den Arbeitsspeicher vorladen möchten (dh nach einem Neustart aufgrund der Installation von Updates), können Sie ein Skript schreiben, das das Scannen aller Index- und Datenseiten und das Einlesen in den Speicher erzwingt .
Wenn das Problem auf viele Schreibvorgänge zurückzuführen ist, kann die Optimierung Ihres Festplattenlayouts hilfreich sein. Ohne mehr über Ihre Datenbank zu wissen, können wir keine spezifischen Hinweise geben, aber die Standard-Faustregeln (wie das Speichern Ihrer Datendateien, Transaktionsprotokolle und Tempdb auf separaten physischen Laufwerken) können hilfreich sein.
Standardmäßig verwendet SQL Server den gesamten verfügbaren RAM auf dem Server. Es wird empfohlen, den SQL Server so zu konfigurieren, dass 2 bis 4 GB weniger RAM verfügbar sind als der Server tatsächlich (abhängig davon, was sonst noch installiert ist, wie viel SQL CLR Sie verwenden usw.). Der SQL Server verwendet den Speicher im Server als Puffercache, damit die Daten so selten wie möglich von der Festplatte gelesen werden müssen. Je mehr RAM der SQL Server zur Verfügung hat, desto mehr Daten kann der SQL Server in den Speicher laden. In einer perfekten Arbeit liest der SQL Server fast nie von der Festplatte (außer beim Start, da die Daten irgendwann von der Festplatte gelesen werden müssen), sodass als einzige Festplatten-E / A Schreib-E / A benötigt wird.
Das Ausführen von SQL Server auf einer RAM-Festplatte entspricht dem Konfigurieren der Auslagerungsdatei eines Computers im RAM: Dadurch werden die Erwartungen des Systems übertroffen.
SQL Server ist eigentlich einem Betriebssystem sehr ähnlich, es hat eine eigene Version von Prozessen, Threads, einen eigenen Speichermanager und andere Dinge. Was würde also passieren, wenn wir SQL Server auf einer RAM-Disk ausführen?
Der erste ist der wichtigste. SQL Server auf der RAM-Festplatte weist im Falle eines Fehlers keine Transaktionskonsistenz mehr auf. Nichts anderes sollte für Sie von Bedeutung sein, aber ich kann mit Sicherheit sagen, dass das Ausführen der SQL Server-Datenbank oder der Protokolldateien auf einer RAM-Disk keine technischen Vorteile bietet, die möglicherweise die Risiken überwiegen können.