PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Von Access zu welchem Backend migrieren?


discostu1
2007-02-19, 14:38:18
Hi,

Ich entwickle derzeit eine Access Anwendung für ein Unternehmen. Leider ist die Anwendung schon weitaus komplexer als zu Beginn angenommen. Darunter leidet auch die Performance.

Access wird sowohl als Back- als auch als Frontend verwendet, wobei die Daten auf dem Server und das Frontend auf den jeweiligen Client-PCs liegen. Normalerweise arbeitet nur 1 Person gleichzeitig damit.

Nun wollte ich wissen, ob es möglich ist die Reaktionszeit des Programms merklich zu erhöhen indem man das Access-Backend durch eine andere Datenbank austauscht.

Wenn ja, welche Datenbank liefert für so eine Anwendung die beste Performance und wie groß wäre jeweils der Änderungsaufwand im Frontend, wo ja massig SQL-Abfragen ausgeführt werden? Wäre für eine Auskunft sehr dankbar!


Mit freundlichen Grüßen
Stu

Monger
2007-02-19, 14:47:12
Ich bin nicht wirklich ein Datenbankexperte, aber afaik ist als lokale Datenbank für nur einen Nutzer Access schon so ziemlich das fixeste was geht, wenn man tatsächlich auch das passende Interface verwendet, und nicht irgendeinen Standard-SQL Treiber nimmt.

An deiner Stelle würde ich mich erstmal in ein paar Diagnosetools reinarbeiten, und mal nachprüfen wo denn die Schwachstelle tatsächlich liegt. Mal so auf Verdacht die Datenbasis auszuwechseln, kann teuer und zeitaufwändig werden. Lieber erst was tun, wenn man ganz genau weiß was man tun muss.

discostu1
2007-02-19, 14:53:59
Ich bin nicht wirklich ein Datenbankexperte, aber afaik ist als lokale Datenbank für nur einen Nutzer Access schon so ziemlich das fixeste was geht, wenn man tatsächlich auch das passende Interface verwendet, und nicht irgendeinen Standard-SQL Treiber nimmt.

Hi Monger, Danke für deine schnelle Antwort!

Aber ich glaube du hast was falsch verstanden. Die richtige Datenbank liegt eben nicht lokal (weil da gehts wirklich fix!), sondern auf einem Server auf den über ein 100Mbit Netzwerk zugegriffen wird.

Deshalb tippe ich auch darauf dass das Bereitstellen der Daten seitens des Servers bzw. die Netzwerkübertragung der Flaschenhals ist, weil es eben lokal angenehm schnell und übers Netzwerk träge langsam geht.

MfG

Monger
2007-02-19, 15:27:22
Dann würde ich mal darauf tippen, dass da eine Menge Optimierungsbedarf beim Frontend besteht. Bei den Clients sollte ja nicht mehr als eine aktuelle Sicht der Daten ankommen, aber keinesfalls der komplette Datensatz. Ich bin jetzt in Access nicht fit genug um das beurteilen zu können, aber afaik sind die Access Eingabemasken nicht gerade prickelnd, ein echtes Frontend ersetzen die nicht.

discostu1
2007-02-19, 15:37:44
Was genau meinst du mit "Optimierungsbedarf im Frontend"? Also die Datenquelle des betroffenen Formulars ist schon so eingestellt, dass nur die benötigten Daten vom Server kommen, aber das Problem bei dem Formular ist, dass es eben so viele Felder für einen Datensatz gibt (und es 0-60 Datensätze anzeigen soll).

Genau darum gehts mir ja, also eine schnellere Bereitstellung der Daten zu erreichen ohne Formularfelder entfernen zu müssen. Ich dachte man könnte mit einem performanteren Backend noch was rausholen.

Monger
2007-02-19, 15:53:00
Ich kann mir ja logischerweise nicht vorstellen worum es wirklich geht, aber ich kann mir nicht vorstellen, dass der Benutzer gleichzeitig tausende von Tabellenspalten auf einen Blick sehen muss. Aber für irgendwas brauchst du ja anscheinend unglaublich große Daten. Was wird denn da archiviert? Videofilme?

Im Endeffekt sollte doch nicht mehr auf den Client übertragen werden als der Client tatsächlich auch anzeigt.

discostu1
2007-02-19, 16:05:01
Ich kann mir ja logischerweise nicht vorstellen worum es wirklich geht, aber ich kann mir nicht vorstellen, dass der Benutzer gleichzeitig tausende von Tabellenspalten auf einen Blick sehen muss. Aber für irgendwas brauchst du ja anscheinend unglaublich große Daten. Was wird denn da archiviert? Videofilme?

Im Endeffekt sollte doch nicht mehr auf den Client übertragen werden als der Client tatsächlich auch anzeigt.

Neinein, es geht bei weitem nicht um solch extreme Datenmengen. Ich will mich ja eigentlich nur darum bemühen, das Programm ein bisschen "smoother" in der Handhabung zu machen ;). Denn das Formular in dem am meisten gearbeitet wird, braucht ca. 3 Sekunden zum Aufbauen, was einfach was anderes ist, als wenn das in 0,5 Sekunden passieren würde. Darum gehts mir. Und abgefragt werden eben ca. 40 Datenfelder x 0-60 Datensätze.

Ich will ja nur wissen obs überhaupt was bringt das Access Backend auszutauschen und mit welchem Aufwand es verbunden ist auf MySql oä umzusteigen.

mfg

Monger
2007-02-19, 16:22:54
Denn das Formular in dem am meisten gearbeitet wird, braucht ca. 3 Sekunden zum Aufbauen, was einfach was anderes ist, als wenn das in 0,5 Sekunden passieren würde. Darum gehts mir. Und abgefragt werden eben ca. 40 Datenfelder x 0-60 Datensätze.

Das ist ja nun wirklich nichts. Wenn in diesen Datenfeldern nur ein bißchen Text drinsteht, reden wir hier über Traffic im Kilobytebereich. Ich vermute, das was hier lange dauert, ist der Verbindungsauf- und Abbau der vermutlich automatisch hier und da mal geschieht. (Könnte sich mal bitte ein Experte zu dem Thema hier äußern? :D )Da müsste man sich halt mal Gedanken darüber machen wie man entweder die Anzahl der Verbindungsaufbauten reduziert, oder sie so macht dass sie weniger auffallen.



Ich will ja nur wissen obs überhaupt was bringt das Access Backend auszutauschen und mit welchem Aufwand es verbunden ist auf MySql oä umzusteigen.

Ich glaube, der Aufwand ist nicht niedrig, und vorallem fragwürdig. Du schießt hier mit ultragroßen Kanonen auf ganz kleine Spatzen. Eine SQL Datenbank frisst Rechenleistung und Platz, und muss ordentlich administriert werden. Das ist das schöne an Access-Datenbanken: alles was es braucht, ist eine Datei die irgendwo rumliegt wo man sie auch erreichen kann.
Und vorallem wenn es um solche Proportionen geht, bist du noch ganz weit von den Mengengerüsten von Access entfernt. Ich kann mir nicht vorstellen, dass das ein Problem ist was irgendwie von der Performance einer Access Datenbank verursacht wird. Aber da müsste man halt mal sehr genau hinschauen, um zu verstehen was genau hier eigentlich der Flaschenhals ist. Deine Datenbank ist es imho nicht.

Kinman
2007-02-19, 19:31:29
Ich kenn mich jetzt in Access zu wenig aus um sicher zu gehen das mein Tip durchführbar und wenn ja, hilfreich ist

Jedenfalls nimm ich an das Access mit dem ADO Model arbeitet. Ist programmiertechnisch die schönere Variante, allerdings um einiges langsam als DAO (zumindest von eigenen Programmen aus). Vielleicht kann man das was umstellen?

mfg Kinman