C-tree Datenbankperformance
Hallo!
Unsere Praxisverwaltung basiert auf einer c-tree Datenbank. Programmdateien liegen auf einem Windows Server 2019. Der Zugriff von den Clients (Win7 & Win10) erfolgt via Laufwerksmapping auf die Freigabe am Server ("Z:" --> \\server\freigabe)
Verzeichnisstruktur aus Sicht der Clients:
Programmverzeichnis Z:\installationsverzeichnis\*.exe
Datenbankverzeichnis Z:\installationsverzeichnis\DB\*.dat
Es läuft kein Datenbank-Server. Sämtliche Clients greifen auf die einzelnen *.dat zu und holen sich ihre Daten mit einer super Performance. Auch große Karteikarten werden in <1Sek. geladen und angezeigt.
Bei einem Kunden (ich weiß nicht, ob das Phänomen nur bei ihm auftritt oder nur er so ungeduldig ist...) ist der Zugriff genauso schnell wie oben beschrieben, solange nur an einem Client das Programm (C++) geöffnet ist. Sobald an einem zweiten Rechner das Programm geöffnet ist -nur geöffnet(!), ohne dass auf irgendwelche Daten zugegriffen wird- dauert der Zugriff auf die Karteikarte bis zu 5 Sekunden.
Ich kann mir dieses Phänomen nicht erklären. Wenn keine Daten abgerufen werden, wird lt. Entwickler auch nicht auf irgendwelche Dateien am Server zugegriffen. Von daher müsste es eigentlich egal sein an wievielen Rechnern das Programm läuft.
Der Installationspfad ist beim Virenscanner an sämtlichen Clients als Ausnahme eingetragen.
Kennt jemand dieses Phänomen? An welcher Schraube muss ich drehen?
Danke für Eure Ideen.
Unsere Praxisverwaltung basiert auf einer c-tree Datenbank. Programmdateien liegen auf einem Windows Server 2019. Der Zugriff von den Clients (Win7 & Win10) erfolgt via Laufwerksmapping auf die Freigabe am Server ("Z:" --> \\server\freigabe)
Verzeichnisstruktur aus Sicht der Clients:
Programmverzeichnis Z:\installationsverzeichnis\*.exe
Datenbankverzeichnis Z:\installationsverzeichnis\DB\*.dat
Es läuft kein Datenbank-Server. Sämtliche Clients greifen auf die einzelnen *.dat zu und holen sich ihre Daten mit einer super Performance. Auch große Karteikarten werden in <1Sek. geladen und angezeigt.
Bei einem Kunden (ich weiß nicht, ob das Phänomen nur bei ihm auftritt oder nur er so ungeduldig ist...) ist der Zugriff genauso schnell wie oben beschrieben, solange nur an einem Client das Programm (C++) geöffnet ist. Sobald an einem zweiten Rechner das Programm geöffnet ist -nur geöffnet(!), ohne dass auf irgendwelche Daten zugegriffen wird- dauert der Zugriff auf die Karteikarte bis zu 5 Sekunden.
Ich kann mir dieses Phänomen nicht erklären. Wenn keine Daten abgerufen werden, wird lt. Entwickler auch nicht auf irgendwelche Dateien am Server zugegriffen. Von daher müsste es eigentlich egal sein an wievielen Rechnern das Programm läuft.
Der Installationspfad ist beim Virenscanner an sämtlichen Clients als Ausnahme eingetragen.
Kennt jemand dieses Phänomen? An welcher Schraube muss ich drehen?
Danke für Eure Ideen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 510593
Url: https://administrator.de/contentid/510593
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
5 Kommentare
Neuester Kommentar
ich finde es ja erstaunlich, daß solche Lösungen aus den 80igern des letzten Jahrtausend noch heute im Einsatz sind.
Da gibt es inzwischen gut etablierte Client-Server - Datenbanken. Datenbanken via Netzwerkfreigaben zu betreiben, auf die mehrere Clients gleichzeitig zugreifen, ist keine zeitgemäße Lösung.
Evtl. rühren die zeitlichen Probleme von irgend welchen Namensauflösungen her (Stichwort winbind etc.), vermutlich sind es aber schlicht locking-Probleme.
Da gibt es inzwischen gut etablierte Client-Server - Datenbanken. Datenbanken via Netzwerkfreigaben zu betreiben, auf die mehrere Clients gleichzeitig zugreifen, ist keine zeitgemäße Lösung.
Evtl. rühren die zeitlichen Probleme von irgend welchen Namensauflösungen her (Stichwort winbind etc.), vermutlich sind es aber schlicht locking-Probleme.
Wenn es ein bekanntes Programm ist, könnte jemand seine Erfahrungen dazu betragen was das Programm so macht, während es „nur startet“.
Es sei denn, es ist etwas selbst geschriebenes, dann weiss es nur der Konstrukteur was es macht.
Es sei denn, es ist etwas selbst geschriebenes, dann weiss es nur der Konstrukteur was es macht.
Zitat von @Hubtus:
Bei einem Kunden (ich weiß nicht, ob das Phänomen nur bei ihm auftritt oder nur er so ungeduldig ist...) ist der Zugriff genauso schnell wie oben beschrieben, solange nur an einem Client das Programm (C++) geöffnet ist. Sobald an einem zweiten Rechner das Programm geöffnet ist -nur geöffnet(!), ohne dass auf irgendwelche Daten zugegriffen wird- dauert der Zugriff auf die Karteikarte bis zu 5 Sekunden.
Bei einem Kunden (ich weiß nicht, ob das Phänomen nur bei ihm auftritt oder nur er so ungeduldig ist...) ist der Zugriff genauso schnell wie oben beschrieben, solange nur an einem Client das Programm (C++) geöffnet ist. Sobald an einem zweiten Rechner das Programm geöffnet ist -nur geöffnet(!), ohne dass auf irgendwelche Daten zugegriffen wird- dauert der Zugriff auf die Karteikarte bis zu 5 Sekunden.
Zitat von @Hubtus:
Niemand hat gesagt, dass es der Name des Programms ist. Natürlich ist es die Sprache...
Der Name des Programms trägt nichts zu Lösung bei.
Die Pfade stehen im Text.
Niemand hat gesagt, dass es der Name des Programms ist. Natürlich ist es die Sprache...
Der Name des Programms trägt nichts zu Lösung bei.
Die Pfade stehen im Text.
Moin,
so viel Freundlichkeit und Informationen sind wirklich selten.
Wenn Du (C++) in (geschrieben in C++) änderst dürfte es klarer werden.
Dass Du mit Procmon die Pfade überprüfen sollst, wie @NordicMike geschrieben hat, und nicht hier angeben musst hast Du schon verstanden?
Alternativ könntest Du mit Wireshark arbeiten.
Gruss