Announcement

Collapse
No announcement yet.

Laufzeitverhalten: InternalGetRecord

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

  • Laufzeitverhalten: InternalGetRecord

    Ich benutze TADODataSet und hab folgendes verhalten beobachtet: wenn ich mit MoveNext durch die Datenmenge navigiere ist das Laufzeitverhalten exponential. Der "Verbraucher" ist InternalGetRecord. Konkret ergab sich folgendes Bild:<BR>
    2500 Aufrufe: ca 4,0s<BR>
    1300 Aufrufe: ca 0.9s<BR>
    900 Aufrufe: ca 0.3s<BR>
    Der DataSet ist über einen Select SQL an eine Oracle DB gebunden. Gibt es Möglichkeiten dieses Verhalten zu verbessern?<BR>
    Peter

  • #2
    Ja.

    Ich gehe davon mal aus, das Du die Cursorlocation auf Client stehen hast.<br>
    Wenn Du nicht unbedingt die graphische Anbindung von TADODataSet benötigst, arbeite doch direkt mit der ADO-Komponente Recordset. Da TADODataset nur ein Aufsatz auf ADO ist, um die Datenbindung an Oberflächenkomponenten zu ermöglichen wird hier evtl. unnötig Zeit verbraten

    Comment


    • #3
      danke Bernhard,<BR>
      das Hauptproblem war, das in der TADODataSet-Komponenente via IndexFieldNames ein Index angelegt war. Dies verhindert, dass ein serverseitiger Cursor angelegt werden kann und führt dann bei einem linearen Durchlauf zum beschriebenen exp. Anstieg des Zeitbedarf beim MoveNext. Mit einem serverseitigem Cursor ist das Verhalten zwar noch immer nicht linear aber ausreichend schnell.<BR>
      Pete

      Comment

      Working...
      X