k.arkenau
Goto Top

FoxPro 8.0 Merkwürdiges Phänomen bei Auswertungen

Hallo alle zusammen,

ich habe ein Problem mit einer FoxPro Umgebung:

Wir haben für ein Warenwirtschaftssystem als Datenbank FoxPro in der Version 8.0 im Einsatz und sind dieser Tage (wahrscheinlich ist das aber schon länger so) auf ein merkwürdiges Phänomen gestoßen.

Wenn auf dem Warenwirtschaftssystem eine große Auswertung (die mal eben so ein paar Stunden dauert) gestartet wird, merkt man auf dem Server so gut wie nichts davon, nur eine ganz leicht erhöhte Serverlast, aber nicht, das was man, IMO , erwarten müsste, nämlich eine Maschine, die richtig am rotieren ist um die Datenbank schnellstmöglich zu durchsuchen. Stattdessen erreicht die CPU Last nur mal ganz knapp die 50 % Lastmarke aber nie darüber.

Der Server (ist schon nen ticken älter) hat als Prozessor einen Pentium 4 3,6 GhZ und 2 GB RAM sowie einene RAID 5 Festplattenverbund als Datenträger.

Jemand ne Idee, warum es so sein könnte? Oder liegt das am Ende gar nicht an der Datenbank obwohl unser Programmierer das behauptet hatte?

Danke für Eure Hilfe.

Content-ID: 174989

Url: https://administrator.de/contentid/174989

Ausgedruckt am: 19.11.2024 um 22:11 Uhr

k.arkenau
k.arkenau 27.03.2012 um 14:41:11 Uhr
Goto Top
Ich muss das Thema nochmal aufmachen, weil das Problem noch nicht behoben ist und ich auch noch was entdeckt habe und immer noch an einer Lösung interessiert bin.

Folgendes habe ich beobchachtet:

Wenn ich eine Auswertung über die normale Netzwerkverbindung machen, kommt die CPU Last kaum auf 20 % Last.. Wenn ich mich von diesem Clienten via RDP auf dem Server anmelde und die gleiche Auswertung mache, geht die Serverlast richtig schön hoch und Auswertung läuft richtig schön schnell durch. Die gleiche Auswertung läuft jedoch auf dem Clienten fast eine halbe Ewigkeit (Viertelstunde mindestens).

Um die Netzwerkleistung zu testen, habe ich einen Ordner, der 200 MB Große ist und 130 Dateien enthalten hatt, mal vom Server auf den Clienten kopiert. Auch das war in akzeptabler Zeit erledigt.

Jemand ne Idee warum scheinbar nur FoxPro solche Zicken macht?
woody-soft
woody-soft 10.08.2012 aktualisiert um 17:38:01 Uhr
Goto Top
Hallo K.

hab da grad mal deine bislang unbeantwortete Frage entdeckt.

Generell würde ich dir empfehlen, FoxPro spezifische Fragen in einem FoxPro-spezifischen Forum zu stellen; da ist dann die Erfolgsquote deutlich höher. Nix gegen das Admin-Forum und deren geballte Kompetenz in Sachen Netzwerk etc, aber bei FoxPro-Programmierung ist dann ein dediziertes Forum doch sinnvoller.

Deine Frage zeigt eigentlich nur, dass du dir noch keine Gedanken gemacht hast, wie FoxPro (oder jedwede klassische Datenbank) funktioniert... Du hast
a) einen Server, der deine Dateien in einem Verzeichnis speichert
b) einen oder mehrere Clients, die per Netzwerk mit diesem Server verbunden sind.

Wenn du deine Applikation startest, macht diese ihre Dateien auf. Die sind auf irgendeinem Laufwerk: entweder auf der lokalen Disk, oder eben im Netzwerk auf dem Server. Dein Server ist also einfach nur ne Festplatte mit langen Kabel dran.
Die Verarbeitung der Daten erfolgt immer im Arbeitsspeicher der Applikation, also auf dem Client. Es ist vollkommen egal, was für ein Prozessor im Server ist, wieviel RAM der Server hat.. es ist ein FILEserver; der rechnet nix, der braucht nur ne schnelle Festplatte, nen schnellen Plattencontroller und ne schnelle Netzwerkkarte.

Wenn du also deine Auswertung startest, dann ist die Rechenleistung am Client. Der Server wird dabei in keinster Weise tangiert, der liefert nur die Ausgangsdaten, aber das Verdichten, Summen ziehen usw macht der Client und dessen Prozessor. Wenn du also deine Auswertung auf irgendeinem windigen XP-Rechner startest, brauchst dich nicht wundern....

Und daher siehst du eben am Server keinerlei Veränderung, abgesehen von einer steigenden Netzwerkkarten-Auslastung.

Wenn du natürlich die EXE am Server direkt startest, hast du kein langsames Netzwerk dazwischen, und dann ist's natürlich schneller, und natürlich steigt dann auch die Prozessorauslastung, weil eben die EXE am Server gestartet wurde.

Die pure Netzwerkleistung, die du mit "ich hab mal ein paar Dateien kopiert das war akzeptabel schnell" so perfekt (?) ausmisst, hat natürlich einen deutlichen Einfluß auf die Client-Performance. Aber auch der Server selber: wie schnell kann dessen Festplatte viele kleine Lese/Schreiboperationen an verschiedensten Stellen einer Datei abarbeiten, wie schnell verwaltet er Satz- und Dateisperren usw.
Aber trotz allen "Wir haben Gb Switche" wirst du feststellen, dass zwischen einem lokalen Datenzugriff und einem Netzwerk-Datenzugriff immer noch Welten liegen.

Ein weiterer wichtiger Punkt ist aber auch, wie diese Auswertung programmiert wurde. Wenn der Programmierer da nicht auf Zugriffs-Optimierung geachtet hat, dann kann ne Abfrage schon lange dauern. FoxPro ist im Normalfall sauschnell und kann bei richtiger Anwendung auch problemlos einen MS-SQLServer aushebeln, aber man muss halt wissen, was man tut. Murks kann man mit jedem Werkzeug vollbringen face-smile
Und eine Auswertung, die übers Netzwerk mehrere Stunden dauert, aber lokal "richtig schön schnell" ist (was immer das in Zeiteinheiten bedeuten mag), ist einfach fehlerhaft programmiert, sorry.

In diesem Falls möcht ich dem Abfrage-Programmierer mal raten, dass er sich das Kapitel "Rushmore-Optimierung" in der FoxPro-Hilfe mal anschaut... Und vielleicht mal die dFPUG-Konferenz-Unterlagen zu dem Thema durchschaut face-smile


wOOdy
Visual FoxPro und Servoy Technologieberater
Microsoft "Most Valuable Professional" from 1996 to 2009, "Servoy Valued Professional“ 2011


"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*
k.arkenau
k.arkenau 11.08.2012 um 13:18:06 Uhr
Goto Top
Auch hier "Danke" für die Antwort, auch wenn sich der großteil des Problems mittlerweile erledigt hat, da wir mittlerweile auf einem 2008 Server mit deutlicher besserer Hardware Ausstattung sind, aber dadurch dieses Problem durch das SMB Problem abgelöst haben, aber das sollte ja auch jetzt, dank Deiner Hilfe, erledigt sein.

Kannst Du ein gutes, möglichst deutschsprachiges, FoxPro Forum empfehlen?

Vielen Dank auf jedenfall erstmal.

Gruß

Karl-Heinz.