Autor Beitrag
Gerd Tigges
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 15.07.02 14:49 
Tach Leute,

habe ein Programm für einen Kunden geschrieben, das einige dBase Tabellen sowie SQL benutzt. Läuft alles wunderbar. Ist auf Mehrplatzfähigkeit ausgelegt.

Startet nun der ERSTE Anwender das Programm (1.700 Mhz) dauert eine bestimmte Funktion 3 Sekunden. Meldet sich ein ZWEITER Anwender an, benötigt der ERSTE plötzlich für dieselbe Funktion über 50 Sek.

Entwickelt mit Delphi 5 Prof., BDE 5.1, alles nur dBase-Tabellen. Local Shared in der BDE ist auf allen Plätzen auf False gesetzt. Die Datenbanken liegen auf einem Server; die Netzwerkschwindigkeit mit 100 MBit ist ausreichend.

Frage: Wie kommt es, daß sich ein Programm plötzlich beim Zugriff auf Datenbanken so verlangsamt, nur weil ein ZWEITER (selbst wenn er nichts im Programm macht) das Programm gestartet hat?

Danke für jeden Tip. Der Kunde ist sauer - und ich bin genervt, weil ich nicht weiterkomme.

_________________
Gruß
Gerd
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Mo 15.07.02 17:48 
Gerd,

ich möcht nur ungern enttäuschen, aber mit DBase im Netz arbeiten würd ich dringend abraten. DBase ist mehr wie jede andere als Desktopdatenbank gendacht, und nicht für mehrere Clients in einem Netz.

Wenns geht, steig auf ein Client Server System um, oder wenn das zu kompliziert ist, probiers mal mit Access welches wenigstens wesentlich besser laufen dürfte als DBase.

Gruss,
tom
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 15.07.02 17:56 
Hallo,

ich fürchte Cashels hat recht. Auch wenn ich nicht zu Access rathen würde. Ich bin vertreter der Advantage Fraktion (aufgrund guter erfahrungen nach Problemen mit Paradox). Diese und andere Alternativeb findest du in diesem FAQ.

Gruß
Klabautermann
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Mo 15.07.02 18:00 
Ich hat Access noch als Alternative da hier der Umstieg von DBase auf Access meines Achtens am leichtesten fällt da Access recht gute Impoirtfunktionen besitzt. Ansonsten würd ich auf jeden Fall auch eine richtige C/S Implementierung wählen. Da gibts ja genug und muss ja nicht in diesem Thread ausführlich ausdiskutiert werden. Hatten wir doch schon so oft 8)
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 15.07.02 18:16 
Cashels hat folgendes geschrieben:
Ich hat Access noch als Alternative da hier der Umstieg von DBase auf Access meines Achtens am leichtesten fällt da Access recht gute Impoirtfunktionen besitzt.

Das Importieren von DBase Tabellen macht wohl bei den wenigsten Systemen Probleme (auch bei dem von mir genanten nicht ;)).
Mir ging es im wesentlichen aber um den Link auf die FAQs.
Würde mich übrigens freuen, wenn du da Access mit seinen Vor- und Nachteilen vorstellst :roll:.

Gruß
Klabautermann
Alfons-G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 307

Win XP Prof, Linux, Win 7
D5 Prof, D7 Architect, D2005 Architect, D2007 Architect
BeitragVerfasst: Mo 15.07.02 18:29 
Wie schon Cashels schrieb, ist DBase eigentlich niemals für den Mehrbenutzerbetrieb entwickelt worden. Die ganze Benutzer- und Zugriffsverwaltung wird von der BDE abgewickelt und diese ist auch nicht die schnellste.

Die erste Alternative wäre Paradox, Du stellst Deine Tabellen um und gibst Deine Anwendung wie gehabt mit der BDE weiter.

Die zweite Alternative, wie Cashels schrieb, ist Access. Deine Kunden benötigen nicht unbedingt Access auf jedem Arbeitsplatz, eine Excel-Vollinstallation reicht aus. Dabei wird die MS-Jet-Datenbankengine, der "Motor" von Access, sowie die nötigen ADO-Dateien auf dem System installiert.
Über ADO kann man auch ohne die Jet-Engine zugreifen, allerdings muss man dann mindestens eine leere Access-DB mitliefern, welche über ADO geöffnet werden kann.

Für Access gibt es auch Direktzugriffskomponenten, welche die BDE überflüssig machen. Schau zu diesem Punkt mal bei Torry nach.

Falls Du eine Microsoft-Entwicklerlizenz besitzt und bei Deinem Kunden nicht mehr als fünf Clients gleichzeitig zugreifen, kannst Du auch auf die mit Visual Studio, bzw. VB und VC++ mitgelieferte MSDE zurückgreifen.
Dies ist ein auf fünf Benutzer kastrierter MS-SQL-Server, welcher mit allen Komponenten, welche für MS SQL geeignet sind, angesprochen werden kann. Die MSDE kann vom Entwickler an seine Kunden kostenlos weitergegeben werden.

Ansonsten kämen dann die etwas unhandlicheren Alternativen wie mySQL in Frage.

:)

_________________
Alfons Grünewald
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Di 16.07.02 11:51 
@Klabautermann:
Klabautermann hat folgendes geschrieben:
Cashels hat folgendes geschrieben:
Würde mich übrigens freuen, wenn du da Access mit seinen Vor- und Nachteilen vorstellst :roll:


Meine Erfahrungen haben gezeigt dass Access in puncto Desktopdatenbanken ne ziemlich gute Wahl ist. Mit Paradox hat ich schon öfters Probleme mit den Indizes. In puncto Geschwindigkeit ist Access seit der Version aus Office97 ganz ordentlich, und ist sogar für den Mehruserbetrieb vorgesehen, obwohl dies natürlich nicht mit einem echten C/S System zu vergleichen ist da sämtliche Abfragen stets auf dem Client erstellt werden. [Bei einem Kunden läuft eine Access Datenbank mit ca. 10 Tabellen jetzt bereits über 5 Jahre hinweg ohne einen einzigen Ausfall - 5 Userbetrieb]

Ein anderer Vorteil seh ich darin, dass Access Views erstellen kann, die normal C/S Systemen vorbehalten sind.

Und falls der Anwender Access selbst installiert hat, hat er ne feine Oberfläche die Daten zu manipulieren. Die Datenbankoberfläche zum Verwalten der Paradox Dateien ist doch ziemlich spartanisch gehalten meines Achtens.

Nun ja, Nachteile gibts auch. Access ist von MS, und läuft somit natürlich nur auf Windows Systemen. Denkt man da z.B. an Interbase oder MySQL läuft das Ganze genauso gut einem Linux System. Dies stört mich jedoch nicht so besonders da ich eh kein Fan der Linuxgemeinde bin (jetzt bitte nicht auf mich loshacken :wink: )

Ich hab hier eigentlich immer den Vergleich mit Paradox gezogen, aber soviele Desktopsysteme sind mir eigentlich nicht bekannt. Lass mich aber gern des Besseren belehren.

Gruss,
Tom

Quote-Tag korrigiert. Marc