[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Nov 2005
    Beiträge
    50
    Hallo alle miteinander,

    nachdem ich inzwischen einen fehlenden Index ausmachen konnte, der den Zugriff um bis zu Faktor 30 beschleunigt, bin ich beim Lesen von Database Performance and Query Optimization darüber gestolpert, daß die AS400 auch temporäre Indizes anlegt, wenn keine passenden vorhanden sind.

    Kann es vielleicht sein, daß dies bei 2M Datensätzen (ca. 350 MByte) an die 12 Minuten dauert? Und kann es vielleicht sein, daß der Halbfertige Index auch schon mitgenutzt wird, während des Aufbaus? Wäre zumindest eine Erklärung, die (mir) passen würde.

    Ansonsten schaue ich mal weiter, was das Dokument noch alles im Angebot hat - vielleicht finde ich ja noch die Erleuchtung schlechthin, daß meine Queries nächstens gar keine Zeit mehr brauchen.

    Viele Grüße aus der verregneten Pfalz

    Christian

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wie der Name schon sagt ist es ein temporärer Index, der nach Abschluss der Abfrage (Close Cursor) wieder gelöscht wird.
    12 Minuten für 2Mio Sätze zeigt nur, wie schnell die Maschine ist. Es kann auch schon mal länger als 1 Stunde dauern.
    Hierfür ist dann das QueryTimeout sinnvoll, um den Query abzubrechen, falls er zu lange dauert. Leider schlägt dann aber manchmal der Optimizer quer, der Zeiten um Faktoren falsch einschätzt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    wobei der close Cursor meist erst beim Close der Connection und bei JDBC erst beim Ende des Server Jobs erfolgt (lazy close). Bei der achSoFamosen neuen Query Engine werden statt temporären Indexen Full Table Scans gemacht, die meist noch aufwändiger sind.

    Was ich mich immer wieder frage und nie verstehe, ist: warum raten fast alle leiber rum, statt mit STRDBMON zu messen???

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Wie der Name schon sagt ist es ein temporärer Index, der nach Abschluss der Abfrage (Close Cursor) wieder gelöscht wird.
    12 Minuten für 2Mio Sätze zeigt nur, wie schnell die Maschine ist. Es kann auch schon mal länger als 1 Stunde dauern.
    Hierfür ist dann das QueryTimeout sinnvoll, um den Query abzubrechen, falls er zu lange dauert. Leider schlägt dann aber manchmal der Optimizer quer, der Zeiten um Faktoren falsch einschätzt.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Dec 2003
    Beiträge
    106
    wird SQL_ATTR_QUERY_TIMEOUT überhaupt von den APIs unterstützt ? Ich konnte in der SQLCLI Copystrecke jedenfalls nichts finden.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das wird leider nicht unterstützt.
    Man muss vorher für seinen Job einen CHGQRYA ausführen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Optimierung NEWSboard code syntax farbig darstellen
    By Burgy Zapp in forum Intern - Hilfe - Feedback - Tests-Forum
    Antworten: 0
    Letzter Beitrag: 07-05-04, 15:56
  2. Optimierung SQL Anweisung
    By Cassius in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 05-03-02, 19:28

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •