Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Access Datenbank langsam (https://www.delphipraxis.net/214180-access-datenbank-langsam.html)

HCB 29. Nov 2023 15:01

Datenbank: Access • Version: 2003 • Zugriff über: LAN / NAS

Access Datenbank langsam
 
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

Sherlock 29. Nov 2023 15:38

AW: Access Datenbank langsam
 
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.

dummzeuch 29. Nov 2023 15:47

AW: Access Datenbank langsam
 
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.

HCB 8. Dez 2023 15:12

AW: Access Datenbank langsam
 
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

dummzeuch 8. Dez 2023 15:31

AW: Access Datenbank langsam
 
Zitat:

Zitat von HCB (Beitrag 1530592)
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.

Delphi.Narium 8. Dez 2023 15:51

AW: Access Datenbank langsam
 
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?

hoika 8. Dez 2023 15:56

AW: Access Datenbank langsam
 
Hallo,
habt ihr mal probiert, einen "richtigen" Rechner anstatt das NAS zu benutzen?
Vielleicht hängt es ja an irgendeiner NAS-Einstellung.

HCB 9. Dez 2023 09:43

AW: Access Datenbank langsam
 
Die .mdb lag vorher auf einem Win10 Rechner, da war das gleiche Problem (mal langsam mal schnell). Deshalb wurde vermutet das Windows im Hintergrund Updates läd, was das ganze verlangsamt und deshalb wurde ein NAS angeschafft, damit das ganze als reines Netzlaufwerk funktioniert. Ruft man die gleiche SQL Abfrage mit meinem Delphi-Programm immer wieder hintereinander ab, so dauert das erste Resultat 8-9 sek., die zweite Abfrage ca. 4 sek, jede weitere dauert immer unterschiedlich lang. Am der SQL Query kanns nicht liegen, da mit einem anderen Programm zum Testen immer die gleiche Ausführungsgeschwindigkeit besteht.
Wo wird eigentlich die Query ausgeführt, auf dem Nas wo ich das Programm aufrufe oder an dem Client PC?
Ich vermute, dass es vielleicht an der FDConnection liegt, die - wenn das eigentliche WW-Programm auch auf die .mdb zugreift - Verbindung irgendwie stört.

LG Harry

dummzeuch 9. Dez 2023 10:40

AW: Access Datenbank langsam
 
Zitat:

Zitat von HCB (Beitrag 1530605)
Wo wird eigentlich die Query ausgeführt, auf dem Nas wo ich das Programm aufrufe oder an dem Client PC?

Auf dem Client-PC. MS-Access-Datenbanken haben keinen Server. Die Abfrage wird üblicherweise von der "Microsoft Access Database Engine" ausgeführt, die zusammen mit MS Access oder als eigener Client installiert wird. Die Zugriffe auf die MDB-Datei selbst sind immer reine Dateizugriffe.

TigerLilly 9. Dez 2023 11:12

AW: Access Datenbank langsam
 
Eine Access Datenbank auf einen MSSQL Server zu verlagern ist nicht die Mörderhexerei. Den MSSQL Express gibt es kostenfrei, den kann man auch im Netz als Server einsetzen. Und wenn keine oder nicht allzuviele Access spezifische SQL Varianten benutzt werden, muss auch am Code nicht viel geändert werden.
Access schneller zu kriegen ist recht aussichtslos, da würde ich den Aufwand lieber in - siehe oben - stecken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.
Seite 1 von 4  1 23     Letzte »    

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