ACCESS Benutzeroberfläche und SQL implementierung
PeterAusBayern
- datenbank
- webserver
Guten Tag! Ich habe eine Frage. Und zwar habe ich eine ACCESS Datenbank. Dadurch das aber schon so viele Daten in der DB vorhanden sind, wird die Benutzeroberfläche immer und immer langsamer. Nun meine Frage: Ist es möglich, von der ACCESS Datenbank einen SQL-Dump zu machen, diesen dann in einen SQL-Server zu importieren, und dann weiterhin die ACCESS Benutzeroberfläche zu verwenden, aber auf einem SQL Server?
Freue mich auf eure Antworten!
Glg!
Hallo
Und zwar habe ich eine ACCESS Datenbank. Dadurch das aber schon so viele Daten in der DB vorhanden sind, wird die Benutzeroberfläche immer und immer langsamer. Nun meine Frage: Ist es möglich, von der ACCESS Datenbank einen SQL-Dump zu machen, diesen dann in einen SQL-Server zu importieren, und dann weiterhin die ACCESS Benutzeroberfläche zu verwenden, aber auf einem SQL Server?
Ja.
Freue mich auf eure Antworten!
Bitte.
Tschö, Auge
Ja.
Ok ich redefiniere die Frage: Ist es möglich, wenn ja, wie?
^^
LG
Hallo
Ja.
Ok ich redefiniere die Frage: Ist es möglich, wenn ja, wie?
Hehe, kommt binnen ca. einer Stunde (bin gerade im Stress).
Tschö, Auge
Hallo
Und zwar habe ich eine ACCESS Datenbank. Dadurch das aber schon so viele Daten in der DB vorhanden sind, wird die Benutzeroberfläche immer und immer langsamer.
Du hast an dieser Stelle möglicherweise mehrere Aspekte.
beides kann zu mangelnder Performance führen. Das auch gerne in Kombination und unter Hinzuziehung weiterer Störquellen, wie z.B. der Lagerung der Daten im Netzwerk bei schlechter Anbindung oder bei zu vielen™ Clients, die auf die Daten zugreifen.
Ist es möglich, von der ACCESS Datenbank einen SQL-Dump zu machen, diesen dann in einen SQL-Server zu importieren, und dann weiterhin die ACCESS Benutzeroberfläche zu verwenden, aber auf einem SQL Server?
Du kannst die Tabellen analog zu den lokalen Tabellen auf dem Server anlegen, in Access (z.B. über ODBC) verknüpfen und die Daten dann mittels SQL-Queries von den lokalen Tabellen auf die Servertabellen übertragen. Einen SQL-Dump brauchst du dazu normalerweise nicht. Damit bist du diese Beschränkung los. Davon wird die Datenbankoberfläche aber nicht einfach so schneller.
Das Frontend (Formulare, Abfragen, VB-Code) solltest du von vorne bis hinten prüfen.
Oft wird in Access-Projekten eine ganze Tabelle in ein Formular geladen und jeweils ein Datensatz dargestellt. Mit den Access-eigenen Schaltflächen wird zwischen den Datensätzen navigiert. Großes Kino sind dann auch Unterformulare für vom Hauptdatensatz abhängige weitere Datensätze in 1-n-Beziehungen. Dort wird dann auch gern die ganze Tabelle der abhängigen Datensätze geladen, obwohl zum Hauptdatensatz nur ein paar abhängige Datensätze existieren.
Frage explizit nur die benötigten Datensätze ab. Tue dies auch bei Unterformularen. Zudem meiner Erfahrung nach günstig: Setze die Datenquellen für Formulare und Unterformulare über den VB-Code des Moduls des Hauptformulars beim öffnen des Formulars und bei Bedarf bei weiteren Events.
Der SQL-Server ist dafür da und darauf optimiert, die dort gespeicherten Daten zu prozessieren. Server bieten neb en der reinen Datenhaltung in Tabellen z.B. Views, Prozeduren, Trigger.
UPDATE
), kannst du im Trigger veranlassen, dass dem Datensatz einem Datensatz in einer anderen Tabelle eine weitere Info hinzugefügt wird.Du bekommst also die Möglichkeit, den Server mit Aufgaben zu betrauen, die du bisher im Access-Client erledigen musstest. Alles, was der nun nicht mehr selbst machen muss, sondern eventuell nur noch anzustoßen braucht, macht ihn tatsächlich schneller.
Du wirst dazu eventuell Bedienkonzepte deiner Programmoberfläche und den enthaltenen Code infrage stellen müssen. Sei darauf gefasst, dass die Umstellung der reinen Datenhaltung auf einen SQL-Server zwar fix erledigt ist, die Bearbeitung des Frontends aber eine langwierige Aufgabe ist.
Tschö, Auge
Tach!
Ist es möglich, von der ACCESS Datenbank einen SQL-Dump zu machen, diesen dann in einen SQL-Server zu importieren, und dann weiterhin die ACCESS Benutzeroberfläche zu verwenden, aber auf einem SQL Server?
Mit Copy und Paste kann man auch ganze Tabellen von und zum SQL Management Studio bewegen. Aber wie Auge schon sagte, allein das hilft noch nicht. Es kann sogar noch langsamer werden, weil die Daten erst noch zwischen zwei Prozessen und/oder Netzwerk transportiert werden müssen. Die Arbeitsweise des Programms ist entscheidend. Erstmal alles laden und dann filtern ist der langsamste Ansatz, egal wie das Backend aussieht. Serverseitiges Filtern und Paging ist die bessere Lösung. Aber auch die hat eine Ladezeit, wenn der Filter geändert oder die Seite gewechselt wird.
dedlfix.
Hallo und guten Tag,
Und zwar habe ich eine ACCESS Datenbank. Dadurch das aber schon so viele Daten in der DB vorhanden sind, wird die Benutzeroberfläche immer und immer langsamer. Nun meine Frage: Ist es möglich, von der ACCESS Datenbank einen SQL-Dump zu machen, diesen dann in einen SQL-Server zu importieren, und dann weiterhin die ACCESS Benutzeroberfläche zu verwenden, aber auf einem SQL Server?
Wenn es sich um reine SQL-Formulare handelt, sollte es da keine Schwierigkeiten geben. Da müssten die Datenmengen schon enorm groß sein.
Die JET-Engine ist enorm schnell.
Wir haben mit Access2000 (also schon etwas älter) über eine VPN-Strecke per Fritz-ACCESS (ISDN 4 Kanäle über B4-Board) und auf der anderen Seite normler ISDN-Anschluss (also 128kBit) mit einer Access-Datenbank gearbeitet. Die war erstaunlich schnell, obwohl reichlich mit Formular/Unterformular und referenzieller Integrität gearbeitet wurde. Allerdings waren die Tabellen auch alle passend indiziert!
Ich denke, daß das der Knackepunkt ist.
Grüße
TS