[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Oben schreibst du:
    "Das Pgm zeigt 24 Zeilen, je Zeile werden 4 Sql ausgeführt."

    Dabei schlackere ich schon mit den Ohren.
    Kann man nicht ein SQL stricken, dass das Ergebnis der 24 Zeilen direkt erzeugt?
    Dann kann ich per Fetch halt direkt Zeile per Zeile in die SFL ausgeben.

    Z.Zt. habe ich die select count(*) ja als set :wert = (select count(*) ... drin

    aus den 4 je Zeile hab ich schon 2 je Zeile gemacht

    Du meinst ich kann mein Ziel mit Prepare und group erreichen?
    Ok, das versuch ich mal


    Zu dem With

    d.h. ich kann auf das with verzichten und an der Stelle

    Code:
    where dadate>=(current_date-(select mon from xx) Months)
    auch gleich

    Code:
    where dadate>=(current_date-(
    select dec(substr(inhacd, 1, 2), 2, 0)                       
                  from   cbuchp01                                                  
                  where  finrcd = 0 and sprccd = 'D' and sakzcd = '6' and          
                         sartcd = 'FORMMK' and rkeycd = 'BONCNT')) Months)
    schreiben?
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Mit WITH hast du viele vorteile. Angefangen von der Lesbarkeit bis hin die einzelnen Sub-Queries einfacher zu testen.
    Es ist aber ähnlich wie bei einer View.
    Wenn du das ganze SQL in eine View packst und dann ein Select * From View machst ändert sich auch nichts.
    Einen Performance gewinn kannst du dann erhalten, wenn du es so aufsplittest wie ich es oben im Beispiel beschrieben habe.

    Über das Forum ist es ab einer gewissen Stelle schwierig zu helfen.
    In solchen Situationen biete ich bei meinen Kunden auch unterstützung via Telefon & TeamViewer an.

    Im Visual Explain solltest du alles finden können, man muss halt nur wissen wo man suchen muss.
    Es ist zugegeben anfangs nicht ganz einfach durchzublicken, aber es ist eines der wichtigstens Werkzeuge bei der Analyse

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.765
    Mir wäre lieber, wenn SQL viel öfters temporäre Tabellen erstellen würde und auch Indizes auf diese erstellt, dann müsste ich dies nicht dauernd selber machen.
    Durch die ständige Wiederholung der Subselects auf der Einzelsatzebene ist es wirklich effektiver ein Zwischenergebnis mit Index zu erstellen als alle in ein dickes SQL zu packen.
    Laufzeiten von Minuten sinken da oft auf Sekunden.

    Ich habe schon früher temporäre Tabellen vorab erstellt, was heute ja per "Create as Select" viel einfacher ist.
    Selbst wenn das tausende Sätze gibt, dauert das häufig unter einer Sekunde.
    Mit anschließendem Index und verjoinen auf andere (auch temporäre) Daten gewinnt man enorm.

    Der Optimizer kann ja auch nur raten was man eigentlich will.
    Also gedanklich manchmal einen oder 2 Schritt/e zurück und dann noch mal.
    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. Wie implementieren andere Firmen ihre SQL-Zugriffe auf die iSeries?
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 04-04-14, 08:32
  2. Artikel: Mobile Zugriffe auf IBM i
    By NEWSolutions Redaktion in forum NEWSolutions artikel
    Antworten: 0
    Letzter Beitrag: 02-11-13, 11:53
  3. Sortieren durch ein Datumsformat
    By Newbie in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-07-02, 09:19
  4. Speicherüberlauf durch Riesenspoolfile
    By Kent in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-06-01, 11:45
  5. FTP Zugriffe selektiv zulassen
    By becama in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 07-04-01, 10:08

Berechtigungen

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