Announcement

Collapse
No announcement yet.

Geschwindigkeit beim Laden

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

  • Geschwindigkeit beim Laden

    Hallo,

    ich habe auf einen Effekt beim Lesen grossen Mengen der Daten über ADODataset gestossen und zwar, wenn in der Abfrage "zu viel" Spalten sind geht die Geschwindigkeit aufs Knie. Sobald ich Anzahl der Spalten reduziere, gehts wieder schneller. Es scheint so sein, als gäbe eine Grenze über die man nicht hinaus springen darf. Ich kann nicht Anzahl der Spalten reduzieren !!!
    Kann jemand was dazu sagen ?
    Umgebung : Delphi 5, Oracle etc.

    MfG
    Vitali

  • #2
    Hallo,

    >wenn in der Abfrage "zu viel" Spalten sind geht die Geschwindigkeit aufs Knie.

    Da eine ORACLE-Datenbank verwendet wird (SQL-Server), muss sich ADO bei der Einstellung CursorLocation = <b>clUseClient</b> beim Öffnen von TADODataSet sofort alle Datensätze der Ergebnismenge vom SQL-Server holen. Die Multiplikation von durchschnittlicher Datensatzlänge (siehe Anzahl und Größe der angeforderten Spalten) mit der abzuholenden Datensatzanzahl der SELECT-Abfrage ergibt die Datenmenge, die vom SQL-Server zum Client transportiert werden muss.

    Um die Ladedauer zu verringern, hat man 4 Optionen: <br>
    a) Anzahl der Spalten verringern <br>
    b) Anzahl der Treffermenge verringern (WHERE-Einschränkung beim SELECT) <br>
    c) asynchron laden: ExecuteOptions:= [eoAsyncFetchNonBlocking]<br>
    d) Server-seitigen Cursor (clUseServer) mit seinen Nebenwirkungen in Kauf nehme

    Comment

    Working...
    X