[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von Robi Beitrag anzeigen
    @D*B
    Nee, nix Stored Procedure
    Das Sql wird doch vom Compiler umgewandelt in einen call.
    Und dieser call, der den 1. Fetch (fetch first from cursor01 into :f1, F2, ...)
    dauert schon endlos.

    Robi
    ... aus dem interaktiven SQL erfolgt hier auch nicht viel was anderes. Die lange Dauer für den ersten fetch könnte eben gerade auf einen full table scan hindeuten.
    Die join order könnte man über die QAQQINI forcieren, würde ich aber normal nicht empfehlen. In jedem Fall würde ich einen order by machen, falls keiner da ist, das kann den Query Optimizer auch in eine Richtung schieben.

    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/

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Es gibt schon einen Unterschied zwischen STRSQL und statischem embedded SQL und zwar ist es das Optimierungsziel. Alle dynamsichen SQL-Statements (damit auch Abfragen aus STRSQL) werden per Default mit dem Optimierungsziel *FIRSTIO (der erste Datenblock muss so schnell wie möglich zurückgebracht werden). Statisches SQL wird per default mit Optimierungsziel *ALLIO optimiert, d.h. das komplette Ergenis muss so schnell wie möglich zurückgebracht werden.

    Normalerweise hat das Optimierungsziel wenig Einfluss, kann aber genau in dem Moment wo sich der Optimizer zwischen Table Scan und halb-optimalem Index-Zugriff entscheidend sein.
    Bei Dir ist genau diese Situation eingetreten.

    Das Optimizerungsziel kann über die OPTIMIZE FOR X ROW-Anweisung beeinflusst weden.
    Wird X durch eine kleine Zahl ersetzt, wird Optimierungsziel *FIRSTIO verwendet. Wird X durch eine sehr große Zahl oder ALL ersetzt wird Optimierungziel *ALLIO verwendet.

    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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wobei ich diesem "Optimize for" nicht soi ganz traue, da ich trotz vieler Versuche selten einen Effekt erzielen konnte.
    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
    Jun 2001
    Beiträge
    2.044
    @D*B
    alle fetch sind langsam, der erste ist definitiv nicht der 'schuldige'

    @Baldur und Birgitta
    also der optimize ist ja schnell eingebaut gewesen
    for 9 rows keine Verbesserung
    for 1 rows keine Verbesserung
    das ist echt krank!

    Ich glaube das ist eher langsamer geworden!
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Warscheinliche Ursache:
    DECLARE C1 DYNAMIC SCROLL CURSOR FOR SE_FLD1

    statt
    DECLARE C1 SCROLL CURSOR FOR SE_FLD1

    jetzt ist die performance ok

    Danke Euch allen

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ersteres erlaubt keine temporäre Kopie, was den Geschwindigkeitsunterschied erklärt.

    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/

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Auch stellt sich die Frage, warum einen Scroll-Cursor.
    Das kann man doch mittels Subfile besser lösen.

    Aber schön, dass du es doch selber gefunden hast.
    Im STRSQL->F13 gibts hierzu die EInstellung "Datenaktualisierung" und "Datenkopie".
    Schau dir dann mal deine Abfrage mit *ALWAYS an...
    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. SQLRPGLE
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 09-06-16, 11:36
  2. STRSQL
    By KingofKning in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-15, 00:32
  3. SQLRPGLE und Printerfile
    By Toschie in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 02-02-15, 14:28
  4. System Performance Analyse und Performance Tuning
    By Bernstein in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 05-08-14, 17:34
  5. STRSQL
    By Günther in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 20-03-03, 13:51

Berechtigungen

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