AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Access Datenbank langsam

Ein Thema von HCB · begonnen am 29. Nov 2023 · letzter Beitrag vom 23. Dez 2023
Antwort Antwort
HCB

Registriert seit: 12. Feb 2020
141 Beiträge
 
Delphi 12 Athens
 
#1

Access Datenbank langsam

  Alt 29. Nov 2023, 15:01
Datenbank: Access • Version: 2003 • Zugriff über: LAN / NAS
Hallo, ich habe mal eine Frage an die Datenbank-Spezialisten.

Ich habe ein Delphi-Programm das auf einem NAS-Laufwerk liegt. Die dazugehörige Access Datei liegt ebenfalls auf dem NAS.
Nun ist es so, beim ersten Programmstart vom PC aus läuft die Anwendung super schnell, bis ein anderer PC auch über die selbe App auf die Access Datei zugreift.
In diesem Fall wird die Anwendung bei PC1 spürbar langsamer, nach eine kurzen Weile auch am PC2. (Aufruf eine SQL Abfrage 1 sek. zu 6-7 sek., manchmal 1 Minute).
Wenn die Apps langsamer arbeiten, werden diese auch nicht wieder schneller wenn kein weiterer Zugriff auf die Datenbank erfolgt. Steckt man den PC dann ab und wieder an, läufts nach einem Neustart der App wieder flink wie es sein soll. Da die PC's eigentlich direkt auf das NAS zugreifen, dürfte sich doch keine unterschiedliche Zugriffszeit ergeben.

Die Konfiguration: PC's -> Switch -> NAS

Mir erschließt es sich nicht, warum das Programm für die SQL Abfragen mal schnell und mal langsam ist.
Kann es sein, dass man bei der Datenbankverbindung etwas "besonderes" einstellen muss?


Bin ratlos, zumal ich schon einen anderen Switch probiert habe.
Hat jemand vielleicht eine Idee die mir bei dem Problem weiterhefen könnte?

LG Harry
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.765 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Access Datenbank langsam

  Alt 29. Nov 2023, 15:38
Access ist bestenfalls eine kostenpflichtige Krücke, mit der man als Single-User etwas DB üben bzw. spielen kann. Sobald man das eingesehen hat, geht es zu freien Produkten wie PostgreSQL oder MariaDB, oder wenn es unbedingt Geld kosten muss, dann eben SQL Server.
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann

Geändert von Sherlock (29. Nov 2023 um 15:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
1.469 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Access Datenbank langsam

  Alt 29. Nov 2023, 15:47
Vermutlich liegt es am File-Locking. Solange es nur einen User gibt, kann der einfach auf die Datei zugreifen ohne dass irgendwelches Locking stattfinden muss. Sobald ein zweiter User hinzukommt, wird es für den Fileserver komplizierter und damit der Zugriff langsamer.

Evtl. kannst Du in den Einstellungen des NAS (das vermutlich SAMBA benutzt) was einstellen, aber ich weiß leider nicht genau, was. Irgendwas mit "OpLock" sieht verdächtig aus.
Thomas Mueller
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
141 Beiträge
 
Delphi 12 Athens
 
#4

AW: Access Datenbank langsam

  Alt 8. Dez 2023, 15:12
Ich kann nicht auf eine andere DB umsteigen, Access ist nun mal vorgegeben. Es müssen SQL-Abfragen generiert werden damit mein Chef schneller und übersichtlicher an die Infos kommt, die das alte vorhandene Warenwirtschaftprogramm nicht hergibt. Gibt es für Firedac Verbindung eine performance optimierte Einstellung? Vielleicht kann man irgendwie die SQL Queries cachen? Was sollte ich noch probieren, die performance insgesamt zu verbessern? Es greifen nur 5 Arbeitsplätze auf die Access mdb zu.

LG Harry
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
1.469 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Access Datenbank langsam

  Alt 8. Dez 2023, 15:31
Es greifen nur 5 Arbeitsplätze auf die Access mdb zu.
Was MS Access angeht ist der zweite schon einer zuviel.

Solange es nur um lesenden Zugriff geht wäre es vielleicht möglich, die Access-db vor dem Zugriff auf ein lokales Laufwerk zu kopieren. Ich weiß, keine schöne Lösung. Kommt halt auf den Use-Case an, ob das möglich ist.
Thomas Mueller
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.433 Beiträge
 
Delphi 7 Professional
 
#6

AW: Access Datenbank langsam

  Alt 8. Dez 2023, 15:51
Accessdatenbanken wachsen im Laufe der Zeit. Das kostet dann auch Geschwindigkeit.

In der ODBC-Verwaltung gibt es bei der Konfiguration für den Accesstreiber auch einen Button "Komprimieren". Wenn man diesen auswählt, wird eine Reorganisatzion der ausgewählten Datenbankdatei durchgeführt. Dabei "schrumpft" sie ggfls. beträchtlich und der Zugriff könnte anschließend wieder deutlich schneller sein.

Eventuell wäre es ja mal 'nen Versuch wert.

Automatisiert: Access Datenbank komprimieren und reparieren

Das zwei einer zuviel ist, glaub' ich jetzt nicht wirklich, zumindest lief eine von mir geschriebene Delphisoftware, mit 'ner Accessdatenbank auf 'nem Netzlaufwerk, über etliche Jahre mit 'nem halben Dutzend Anwenderinnen problemlos. (Ok, ist sowas um die 20 Jahre her.) Über die Perfomance hab' ich nie Klagen gehört.

Ist eine Accessdatenbank vorgegeben oder die Accessbenutzeroberfläche? Die kann es auch mit anderen Datenbanken, z. B. MS-SQL-Server oder alles das, was sonst so über ODBC möglich ist.

Literatur: Access als Frontend für MYSQL?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Access Datenbank langsam

  Alt 8. Dez 2023, 15:56
Hallo,
habt ihr mal probiert, einen "richtigen" Rechner anstatt das NAS zu benutzen?
Vielleicht hängt es ja an irgendeiner NAS-Einstellung.
Heiko
  Mit Zitat antworten Zitat
Kas Ob.
Online

Registriert seit: 3. Sep 2023
214 Beiträge
 
#8

AW: Access Datenbank langsam

  Alt 9. Dez 2023, 11:58
Ich kann nicht auf eine andere DB umsteigen, Access ist nun mal vorgegeben. Es müssen SQL-Abfragen generiert werden damit mein Chef schneller und übersichtlicher an die Infos kommt, die das alte vorhandene Warenwirtschaftprogramm nicht hergibt. Gibt es für Firedac Verbindung eine performance optimierte Einstellung? Vielleicht kann man irgendwie die SQL Queries cachen? Was sollte ich noch probieren, die performance insgesamt zu verbessern? Es greifen nur 5 Arbeitsplätze auf die Access mdb zu.

LG Harry
Hi,

Is by "Access" you mean MS Office Access the application and its interface ?
Because if that is what required then Office Access (also Excel) support ODBC and you can connect them to almost anything else (ant DB server/database provider), you are not limited to mdb providers.

Another idea is see if some sort of synchronization is possible with AccessDB and other providers using ODBC, here the slowness of AccessDB mdb will not kick unless you are doing write from mdb to the other side (you main DB), otherwise it will be simple insert/update/delete in mdb that will not affect you DB server, or at least has the minimum impact.

Well, that if i understood this right ?

Or may be you meant you boss SQL queries needs to be executed fast in robust way (may be they are complex), then do it the other way, first replicate/copy/export/import the mdb to your whatever (MySQL, MariaDB, MS SqlServer...) and find how fast enough these queries will perform again running them on mdb, evaluate the speed of such marshaling.
Also you still can utilize the ODBC mentioned above in finding faster and responsive way.


hope that helps.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: Access Datenbank langsam

  Alt 9. Dez 2023, 15:02
Mit Access kann man viel machen, vieles leider suboptimal.

Ein Ansatz wäre, die eine Access mdb in Logik und Datenhaltung zu trennen.
Datenhaltung dann remote auf dem NAS.
Logik mdb lolal auf dem eigenen Rechner.

Dort werden alle Tabellen als Verknüpfung zur Daten mdb angelegt.

Falls die Daten sowieso nicht aus Access selbst stammen (originär dort gehalten werden), sondern selbst bloß eine Verknüpfung zu einem anderen System (z.B. Warenwirtschaft) sind (ODBC, ..), kann man vermutlich auch gleich dorthin verknüpfen.
Bei den Abfragen in solch einer Konstellation muss man beachten, ob man nativ (nativ zum Zielsystem) arbeitet (Pass Through) oder mit Access Bordmitteln. Die erste Variante ist optimal, die zweite kann zu beliebigen Problemen führen. Kann Access eine Remote Abfrage nicht richtig "interpretieren", macht es eine lokale Datenkopie der Servertabelle und arbeitet dann auf den lokalen Daten. Das kann bei großen Tabellen beliebig viel Zeit kosten. Aus diesem Grund würde man eher Pass Through Abfragen verwenden, als verknüpfte Tabellen.
Bei verknüpften Abfragen kann allerdings wieder ein Update problematisch sein.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz