VPN vs. Netz
Von:Olaf Doschke b2xhZkBkb3NjaGtlLm5hbWU@strconv.14.de
An:Thomas Ganss tganss_at_t_dash_online_dot_de-remove-all-after-fi
erstellt am:24.01.2011 10:11:54 - #14697 in section Antworten     Antworten mit Zitat
--from Newsreader at Montag, 24. Januar 2011; 10:11:54--

>> >>Du kannst z.B. mal das Artikelstammformular per SET COVERAGE seine
>> performance im einzelnen loggen lassen<<
>>
>> Vielen Dank für den Tip. Werde ich versuchen. Ich erstelle gerade diese
>> Maske neu, hoffe das bringt mich auch weiter.

>Wenn Du mit CA arbeitest, ist IMHO die bequemste Art, derartige Sachen
>zu finden, ein Logging das in der CA Basisklasse alle Bulk-Kommunikation
>zur Basistabelle mitscreibt.

* Coverage an
SET COVERAGE TO Datei ADDITIVE
*Coverage aus
SET COVERAGE TO

Und das möglichst als Klammer um den Code, der die Daten holt. Du kannst
aber durchaus auch alles bis Ende des Inits loggen lassen, alos im Load()
oder im DE BeforeOpenTables() an und am Ende des Init() aus.

Die erstellte Logdatei kann man per Coverage Profiler auswerten, sich da
etwas besseres suchen oder einfach selbst die Rohdaten in einen Cursor
ziehen:

Create Cursor curCoverage (bExecTime B, cClass C(128), cMethod C(128), iLine
I, cFile C(254), iStacklevel I)
Set Point To '.'
Append From coverage.log Type CSV

Select * From curCoverage Order By iStacklevel, bExecTime Descending

Stacklevel ist hilfreich, weil Coverage einen Datensatz pro Codezeile loggt,
also auch für Aufrufe von Methoden. Rein nach Zeit absteigens sortiert
findest Du als dicken Brummer dann u.U. einen Methodenaufruf, nicht die
einzelne bremsende Zeile innerhalb der aufgerufenen Methode.

Je exakter Du also das Logging bei den interessanten Codestellen an- und
abschaltest, je einfacher dann, den Flachenhals zu finden.

Interessant ist natürlich z.B. auch Select Sum(bExecTime), cFile, cMethod,
iLine
... Group By cFile, cMethod, iLine

Tschüß, Olaf.

Von:Thomas Ganss tganss_at_t_dash_online_dot_de-remove-all-after-fi
An:Jörg Richter joerg.richter@chello.at :gelesen
erstellt am:23.01.2011 12:21:41 - #14695 in section Antworten     Antworten mit Zitat
--from Newsreader at Sonntag, 23. Januar 2011; 12:21:41--

Jörg Richter schrieb:
> Hallo Olaf,
>
> >>Du kannst z.B. mal das Artikelstammformular per SET COVERAGE seine
> performance im einzelnen loggen lassen<<
>
> Vielen Dank für den Tip. Werde ich versuchen. Ich erstelle gerade diese
> Maske neu, hoffe das bringt mich auch weiter.

Wenn Du mit CA arbeitest, ist IMHO die bequemste Art, derartige Sachen
zu finden, ein Logging das in der CA Basisklasse alle Bulk-Kommunikation
zur Basistabelle mitscreibt.

my 0.05 (been there, done that...)

tg
Von:Jörg Richter joerg.richter@chello.at
An:Olaf Doschke b2xhZkBkb3NjaGtlLm5hbWU@strconv.14.de
erstellt am:22.01.2011 14:47:19 - #14694 in section Antworten     Antworten mit Zitat
Hallo Olaf,

>>Du kannst z.B. mal das Artikelstammformular per SET COVERAGE seine
performance im einzelnen loggen lassen<<

Vielen Dank für den Tip. Werde ich versuchen. Ich erstelle gerade diese Maske neu, hoffe das bringt mich auch weiter.

Von:Olaf Doschke b2xhZkBkb3NjaGtlLm5hbWU@strconv.14.de
An:Jörg Richter joerg.richter@chello.at :gelesen
erstellt am:22.01.2011 13:51:24 - #14693 in section Antworten     Antworten mit Zitat
--from Newsreader at Samstag, 22. Januar 2011; 13:51:24--

>>>Und 16 nicht? Und diese 16 haben Performanceprobleme?<<
>Ja genau die. Ich kann das Programm von meinen Büro aus auch über VPN
>starten und habe keine Probleme.

Na dann liegt wOODy ja richtig. Dann liegts an schlechter optimierung und
Indizierung der Daten. So daß lokaler vs Zugriff über Netzwerk die
Performance hauptsächlich beeinflußt.

Die anderen dann auch über RDP Client arbeiten zu lassen wäre dann wohl die
schnelle Lösung. Performanceoptimierung die langfristige. Indizes sind dabei
nur ein Thema. VFX sollte per se keine riesigen Probleme verursachen, sonst
wäre es als Framework nicht tragfähig. Aber gerade für Datenindizierung zur
Optimierbarkeit von Abfragen wirst Du schon selbst zuständig sein.

Du kannst z.B. mal das Artikelstammformular per SET COVERAGE seine
performance im einzelnen loggen lassen. Das läuft sogar innerhalb der EXE,
verlangsamt zwar nochmal im Moment der Analyse, erlaubt Dir dann aber die
Methoden und SQLs, Views oder was auch immer aufzufinden, die langsam
laufen.

Tschüß, Olaf.

Von:Jörg Richter joerg.richter@chello.at
An:Olaf Doschke b2xhZkBkb3NjaGtlLm5hbWU@strconv.14.de
erstellt am:22.01.2011 08:31:05 - #14691 in section Antworten     Antworten mit Zitat
Hallo Olaf

>>Und 16 nicht? Und diese 16 haben Performanceprobleme?<<

Ja genau die. Ich kann das Programm von meinen Büro aus auch über VPN starten und habe keine Probleme.


Von:Olaf Doschke b2xhZkBkb3NjaGtlLm5hbWU@strconv.14.de
An:Jörg Richter joerg.richter@chello.at :gelesen
erstellt am:21.01.2011 08:00:10 - #14690 in section Antworten     Antworten mit Zitat
--from Newsreader at Freitag, 21. Januar 2011; 08:00:10--

Hallo Jörg,

>>>>Ist es vielleicht eher so, dass das Programm zwar auf dem TS abgelegt
>>>>ist,
>>aber von Anwendern im lokalen Netzwerk tatsächlich auf ihren Rechnern
>>ausgeführt wird?<<

>Von 20 Workstation gehen 4 über ein RDP-Fenster rein.

Und 16 nicht? Und diese 16 haben Performanceprobleme?

Tschüß, Olaf.

Von:Jörg Richter joerg.richter@chello.at
An:Jürgen_Wondzinski juergen@wondzinski.de
erstellt am:21.01.2011 07:28:39 - #14689 in section Antworten     Antworten mit Zitat
Hallo wOOdy,

Vielen Dank für die Erklärung.

>>Ist es vielleicht eher so, dass das Programm zwar auf dem TS abgelegt ist,
aber von Anwendern im lokalen Netzwerk tatsächlich auf ihren Rechnern
ausgeführt wird?<<
Von 20 Workstation gehen 4 über ein RDP-Fenster rein.

Von:Jürgen_Wondzinski juergen@wondzinski.de
An:Jörg Richter joerg.richter@chello.at :gelesen
erstellt am:20.01.2011 12:12:23 - #14683 in section Antworten     Antworten mit Zitat
--from Newsreader at Donnerstag, 20. Januar 2011; 12:12:23--

Hallo Jörg,

wenn das Programm auf dem Terminalserver (also in einer Server-Sitzung)
ausgeführt iwrd, sollte es ziemlich schnurz sein, ob die
Bildschirm-Spiegelung via VPN-Netzwerk oder internem Netzwerk an den Client
übertragen wird. Zumindest kann ich mir keinen technischen Grund vorstellen.
Ein RDP-Client am TS ist immer via Netzwerk angebunden, und ob das Netzwerk
nun nur intern geroutet ist oder irgendwie (zb via VPN) auch nach ausserhalb
geht, ist der eigentlichen TS-Session schnurz.

Ist es vielleicht eher so, dass das Programm zwar auf dem TS abgelegt ist,
aber von Anwendern im lokalen Netzwerk tatsächlich auf ihren Rechnern
ausgeführt wird? Sobald die EXE direkt auf deren Desktops läuft, anstelle
in einem RDP-Fenster, hat das nix mit TerminalServer zu tun...


--

wOOdy
Servoy und Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009



"*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
...·`.Visual FoxPro: It's magic !
(¸.·``··*


Servus
wOOdy

Lianja, Servoy und Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" von 1996 bis 2009
Servoy Valued Professional 2011

"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*

 Servus

    wOOdy

Von:Jörg Richter joerg.richter@chello.at
An:All :gelesen
erstellt am:15.01.2011 10:13:25 - #14658 in section Antworten     Antworten mit Zitat
Hallo zusammen,

Ich habe bei einen Kunden folgendes Problem:

Programm (mit VFX erstellt) und Daten sind auf einem Terminalserver installiert.
Etwa 20 Leute arbeiten täglich mit dem Programm. Davon 3 über VPN u. 17 direkt über das Netzwerk. In einer einzigen Form (Artikelstamm - 8.000 Sätze - 27 Dateien werden geöffnet - optimistisches locking) dauert das Öffnen der Form und das speichern eines Datensatzes bis zu 2 Minuten. Allerdings nur über das Netzwerk. Über VPN gibt es keine Probleme (auch ich kann vom Büro aus über VPN ohne Probleme arbeiten).
Mir fehlen leider die nötigen Hardwarekenntnisse um das zu erklären. Kann man da an irgen etwas schrauben oder auf was muß ich bei der eventuellen Neuprogrammierung der Form achten?