Announcement

Collapse
No announcement yet.

Performancesteigerung für TClientDataSets

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Performancesteigerung für TClientDataSets

    Hallo,

    Ich habe eine MultTier Anwendung mit einem TRemoteDataModule, das wahlweise eine Socket, DCOM oder WebConnection benutzt.
    Zur Laufzeit erzeugt der Client mehrere ClientDataSets und schickt einen Aufruf an den Server, der daraufhin die dazugehörigen Provider und DataSet Komponenten im Server erzeugt. (Ich benutze TOracleDataSets)

    Nun habe ich letztens bemerkt, dass der Aufruf einer Servermethode über das IAppServer Interface unverhältnismäßig viel Zeit gegenüber der eigentlichen Abarbeitung der Methode im Server benötigt. In meinen Testläufen brauchte der gesamte Aufruf durchschnittlich 30 bis 60mal so lange wie die Methode im Server selbst.
    Also habe ich einige Methodenaufrufe zu einem einzigen gebündelt und damit etwa eine Performancesteigerung von 20% erzielt.

    So weit, so gut. Der eigentliche Flaschenhals ist aber ein ganz anderer, nämlich
    clientdataset.Active := true;
    nachdem der CommandText gesetzt wurde. Diese Zeile macht jetzt ca. 95% der Erzeugung der Datenquellen aus und die Verzögerung ist leider sehr spürbar.

    Daher würde ich die Aktivierung der Datenquellen gerne auch verschnellern, wenn möglich. Nun weiß ich aber nicht, ob der Großteil der Zyklen auch in der Client/Server Kommunikation verbraten wird oder ob es noch andere Möglichkeiten gibt, die Aktivierung schneller zu machen (z.B. durch geschickte Einstellungen bei Provider, Client- oder OracleDataSet etc.).
    Dabei wäre anzumerken, dass pro Datenquelle jeweils nur maximal 100-200 Datensätze zurückgegeben werden, von daher denke ich nicht, dass eine Limitierung der gelieferten Datensätze eine große Wirkung hätte.

    Hat irgendwer eine Idee, was ich tun könnte?

    Danke im Voraus
    Andreas Krügersen

  • #2
    Wie oft willst du noch die gleiche Meldung posten

    Comment


    • #3
      Tut mir leid, keine Ahnung was da schiefgelaufen ist, aber ich habe die Meldung nur einmal abgesendet. Ich war gerade selber sehr überrascht.
      Wie auch immer, die anderen sind gelöscht

      Comment

      Working...
      X