Datenbank in Ram
-
Helo,
ich hab ein Problem. Ich hab eine MS Access schnittstelle: da das netzwerk(also die datenbank befindet sich in einem firmenaustauschnetzwerkordner) immer langsamer wird, stürzt die datenbank aufgrund der wartezeit von 2-3 sekunden des netzwerks immer wieder ab. zugriff hat man nur sporadisch, wenn wenig traffic ist.
meine idee war jetzt die komplette db(5mb) in den Ram zu kopieren bei jedem programstart. geht das? bzw kann man daten im ram auch mit sql bearbeiten?
ich will die db ja nur von der festplatte in den ram schieben und von dort arbeiten. wüsste aber nicht wie ich das machen soll
-
datenbankfuzzi schrieb:
meine idee war jetzt die komplette db(5mb) in den Ram zu kopieren bei jedem programstart. geht das? bzw kann man daten im ram auch mit sql bearbeiten?
Fangen wir erst einmal mit Gegenfragen an:
0. Was hat das mit C# zu tun?
1. Arbeiten mehrere schreibend auf der Datenbank => Dann kannst du die lokale Kopie ohnehin vergessen (bzw. nur sehr aufwändig mit viel Abgleichaufwand).
2. Was tun die Administratoren und die Firmenleitung gegen die Netzwerkprobleme?Wesentlich einfacher wäre es die Datenbankdatei zu kopieren und darauf zu arbeiten, dann kann man auch SQL und Co wie gewohnt verwenden. Eine Access-Db hat aber allgemein einige Nachteile, wo zu überlegen wäre ob man nicht Access langfristig austauschen könnte (u.a. das die Abfragen nicht auf dem Server laufen, daher wesentlich mehr Traffik als bei "großen" DBs nötig ist).
-
Eine C# Anwendung greift auf die Access DB zu. Und da es eine sehr große Firma ist, ist man natürlich nicht gewollt auf "neue" sachen umzuschwenken... naja muss ich sie halt temp kopieren dass man mit arbeiten kann
-
icasd123 schrieb:
naja muss ich sie halt temp kopieren dass man mit arbeiten kann
Und wie gesagt hoffe ich: Nur lesend (Sonst klappt das ganze nicht)...
-
Access bietet soweit ich weiss keine Möglichkeit die DB direkt im RAM zu halten.
Bliebe nur noch eine RAM Disk. Was unter Windows wieder super umständlich ist.Wobei es reichen sollte die DB auf eine lokale Festplatte zu kopieren. Lesezugriffe werden bei einem so winzigen File dann sowieso alle aus dem Cache bedient. Du wirst also bei rein lesender Verwendung der DB keinen Unterschied zur Geschwindigkeit mit einer RAM-Disk feststellen können.