xandar
Goto Top

MSSQL Dateien im RAM zwischenspeichern?

Hallo,

ich habe einen Microsoft SQL Server Express 2017 auf einem Windows Server 2012R2, welcher leider ziemliche Performance Probleme aufgrund vom überlastetem Storage (noch keine SSD's) mittlerweile hat. Das ganze ist eine VM auf VMWare.

Allgemein alle Anfragen die es erfordern etwas von der Festplatte zu lesen / schreiben haben eine Latenz von >~400ms im Taskmgr. Leider ist ein austauschen des Storages aktuell nicht auf die schnelle möglich. Was ich jedoch genug zur Verfügung habe, ist RAM.

Gibt es eine Möglichkeit die ganzen Daten vom SQL Server im RAM zwischen zu speichern, sodass zumindest bei lesenden Vorgängen dieses schneller geht.
Oder sonst irgendwie die Performance zu verbessern.
Die DB an sich ist nur insg. etwa 2gb.

Ich kenne mich mit VMWare nicht gut aus, evtl. gibt's da auch ne Möglichkeit wie eine art RAM-Disk oder so?

Habt ihr ne Idee?
Grüße

Content-Key: 629799

Url: https://administrator.de/contentid/629799

Printed on: April 27, 2024 at 17:04 o'clock

Member: GrueneSosseMitSpeck
GrueneSosseMitSpeck Dec 09, 2020 at 15:57:03 (UTC)
Goto Top
der SQL Server speichert ALLE wiederkehrenden lesenden Abfragen, bis der Speicher voll ist.
Aber die Express Edition speichert maximal 1,4 GB im Datencache und danach wird der Storage bemüht.

die 2 GB sollte die Express Edition aber schaffen... aber beim Storage hat einer Murks gebaut. 400 ms, sowas hab ich schon lang nicht mehr gesehen. Vemrutlich sind auch die Datenträger-Warteschlangen voll (zu sehen im Ressource Monitor)

VMware selber hat noch einen eigenen Cache, der muß aber erst aktiviert werden und das wird dir eher nichts helfen, da der als Host cache deklarierte Teil des Arbeitsspeichers von VMware nur von Vorteil ist, wenn z.B. viele praktisch identische VMs regelmäßig gebootet werden. Beim SQL Server in einer VM hilft der Host cache nicht weiter, kümmer dich mal schnellstens um eine SSD oder besser noch NVME für den Storage.
Member: wiesi200
wiesi200 Dec 09, 2020 at 19:40:06 (UTC)
Goto Top
Hallo,

also eine SQL Datenbank in eine Ramdisk hallte ich in den meisten Anwendungsfällen für Blödsinn.

Mssql kann zwar in den neueren Versionen im InMemory Tabellen umgehen, aber da muss das DB Layout passen, bzw. Die Programmierung.

Aber bei ner 2 GB Datenbank sollte eigentlich auch der Express mit langsamen Festplatten klar kommen.

Entweder du überforderst dein Storage so schön maßlos, und hast genug andere Probleme damit. Oder Der Datenbankaufbau ist eine Katastrophe.
Member: Xandar
Xandar Dec 10, 2020 at 09:51:44 (UTC)
Goto Top
Aber auch nur die wiederkehrenden und ich habe nun festgestellt, dass dieses scheinbar nach einiger Zeit (über Nacht) wieder gelöscht wird. Kann das sein?

Hmm die Datenträger-Warteschlange sieht eigentlich ok aus, also ist zwar etwas last drauf, aber ist nun nicht so, dass da ein riesiger Berg an Daten noch abgearbeitet werden muss.
Member: Xandar
Xandar Dec 10, 2020 at 09:54:44 (UTC)
Goto Top
Meine Idee geht eben nur in die Richtung den RAM als lesenden zwischen Speicher zu nutzen.
Da es deutlich mehr Lese- als Schreibvorgänge gibt.

Das InMemory nicht so ganz einfach ist dachte ich mir schon.

Kann gut sein, dass der Storage total überlastet ist, da kann ich selbst leider nichts dran ändern, da ich nicht dafür zuständig bin. Ich habe zwar schon nachgefragt, aber bis sich da was ändern wird, dauert es noch ein paar Monate.
Member: wiesi200
wiesi200 Dec 10, 2020 at 09:59:28 (UTC)
Goto Top
Es geht doch aktuell noch nicht um was zu ändern sonder um das Problem einzugrenzen. Sprich der Verantwortliche sollte zumindest mal kurz ein Statement geben können ob da ein Problem vorhanden ist oder nicht. Entsprechend kann man dann reagieren