[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.931
    Bei wenigen Sätzen/Zeilen und Spalten in einer Datei ist ein Table Scan immer schneller als ein Index-Zugriff!

    Wenn die SQL-Abfrage wirklich mit der SQE und nicht mit der CQE ausgeführt wird, ist ein temporärer Index quasi permanent, d.h. existiert bis zum nächsten IPL und kann von allen Jobs (bzw. allen SQL-Abfragen) verwendet werden.

    Der Optimizer interagiert mit dem Statistics-Mangager und erhält Informationen darüber wie groß der Anteil der ausgewählten Sätze am Gesamt ist. Bis zu ca. 20% wird ein Index bevorzugt.

    Was mich allerdings wundert ist, dass bei einer Abfrage ein temporärer Index gebildet wird. Das passiert eigentlich nur, wenn man darauf besteht mit Echt-Daten (Datenkopie zulässig = *NO oder SENSITIVER CURSOR) zu arbeiten.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Hi Brigitta,
    Danke für die Antwort!

    Es ist alles reines SQL (Tabelle, Schema), und auch mit der SQE abgearbeitet. Der Temporäre Index bleibt auch bestehen.

    Nach löschen, der Statistik-Daten hat der Optimizer zumindest keine Row-Liste erstellt.

    Jetzt geht er nur noch über den Temporären Index.

    Allerdings wenn ich den Filter entsprechend auswähle, dass möglichst wenig Datensätze ausgegeben werden, wird ein Table-Scan durchgeführt

    Interessant ist auch, dass wenn ich den zusatz "FETCH FIRST ROW ONLY" verwende, trotzdem über den längeren Zugriffspfag gegangen wird, da trotzdem alle Datensätze gelesen werden und erst zum Schluss der erste Satz ausgegeben wird.

    Danke jedenfalls für die Unterstützung!
    lg Andreas

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.703
    FETCH FIRST ROW ONLY ist für den Optimizer nicht relevant.
    Hierfür ist OPTIMIZE FOR n ROWS gedacht.
    Zusätzlichen Einfluss kann man über SET OPTION ALWBLK=..., ALWCPYDTA=... sowie die QAQQINI nehmen.
    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

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.368
    ... da gehts der Query Engine nicht viel anders als der Kriminalpolizei: die rät - und manchmal falsch

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Vielen Dank für die zahlreichen Antworten!!

    Über SQL selbst hab ich es nicht mehr geschafft ein einfaches Table-Scan durchzuführen.
    PHP-Code:
    select from myftplog
    where actcnt 
    1332
    fetch first row only
    optimize 
    for 1 rows
    for read only 
    Müsste scheinbar wirklich wie Fuerchau geschrieben hat, mit SET OPTION oder in der QAQQINI einstellungen vornehmen, dass zB keine temporären Objekte erstellt werden dürfen. (Für diese Abfrage zumindest.)

    So wie es aussieht ist die Antwort von BenderD am plausibelsten.

    Danke auf jeden Fall für eure Hilfe

Similar Threads

  1. String Verarbeitung Free Format
    By co_steffl in forum IBM i Hauptforum
    Antworten: 19
    Letzter Beitrag: 08-12-09, 12:14
  2. Verarbeitung mit variabler Satzstruktur
    By RaMai in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 02-11-07, 17:21
  3. MQ-Series: Automatische Verarbeitung
    By RLurati in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 20-10-06, 09:09
  4. MQ-Series: Automatische Verarbeitung
    By RLurati in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 20-10-06, 08:31
  5. Fehler bei Verarbeitung von QSZPAVL
    By Brownie in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-07-04, 10:56

Berechtigungen

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