Hallo zusammen,
ich habe eine Frage zur Performance-Optimierung Datenbank. Unsere aktuelle Datenbank hat eine Größe von etwa 200 MB und wird von 5 aktiven Nutzern verwendet. Leider ist die Performance sehr schlecht: Es dauert etwa eine Minute, bis die Datenbank beim erstmaligen Öffnen lädt, und auch im Bearbeitungsmodus ist sie extrem langsam.
Hat jemand von euch eine Idee oder einen Ansatz, wie man dieses Problem lösen könnte?
Mein Ansatz bis jetzt ist Front End und Backend zu trennen (Backend PostgreSQL Datenbank und Frontend trotzdem Access).
Vielen Dank im Voraus!
Viele Grüße, Henry
Hallo Henry,
definitiv eine gute Idee: Die Datenbank sollte zu 100% im Backend sein, lokale Tabellen höchstens für Dinge wie Konfigurationstabellen für die einzelnen User.
Wie im anderen Thread schon geschrieben, sind meine persönlichen Erfahrungen mit PostgreSQL als Backend für Access sehr schlecht, aber nicht repräsentativ. Wenn die Datenbank aber selbstgebaut ist und keine von einer Softwareschmiede, würde ich sehr empfehlen, auf SQL Server umzusteigen, der nicht nur mehr Möglichkeiten "out of the box" anbietet, sondern auch z.B. einfach in eine Azure Cloud umziehbar wäre, wenn das mal Thema wäre - ohne Änderung an der Datenbank, nur ein wenig Konfiguration und Migration.
Daneben gibt es mit dem SSMA (SQL Server Migration Assistant) auch ein Tool, das lokale Access-Tabellen selbständig nach SQL Server migriert, lokale Tabellen in Access gegen Links zum SQL Server austauscht usw., so daß bei nicht allzu komplexen Datenbanken das Frontend nach der Umstellung genauso wie vorher funktioniert, nur mit nun Backend SQL Server.
Gruß
Christian
Hallo Henry,
leider kann man pauschal zu deinem Problem so nichts sagen, da müsste man eine nähere Untersuchung durchführen, aber eine Trennung in FE/BE ist in einer Multiuserumgebung eigentlich recommended. Bei ein DB Größe von 200MB braucht man aber noch nicht zwingend eine SQL-Datenbank auf einem Server und ob es unbedingt PostgreSQL sein muß, weiß ich nicht. Bei der Größenordnung würde auch schon einen MS SQL Express Edition ausreichen.
Gruß
Knobbi38
Ich glaube kaum, dass die Datenbank das Problem ist. Der Vorteil vom SQL Server ist aber dennoch, dass viele damit Erfahrung haben.
Was man prüfen kann:
Netzwerk Anbindung würde man LAN mit entsprechender Performance erwarten.
Wenn dann tatsächlich der aktuellste unterstütze Treiber verwendet wird, und die Datentypen kompatibel sind, muss man sich die Abfragen ansehen. Es sollten keine VBA Funktionen verwendet werden, wenn ein Server im Einsatz ist. Außerdem sollten Abfragen - bei höherer Komplexität - nicht im Frontend, sondern als Views am Server gespeichert sein und nur Funktionen der Datenbank eingesetzt werden.