[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2009
    Beiträge
    208

    spooled_file_data vs cpysplf

    Guten Tag,

    wir haben die SQl Funktionalität "spooled_file_data" entdeckt.

    Code:
     SELECT *                                   
       FROM TABLE (systools.spooled_file_data   
    ('JOBNR/USER/JOBNAME' , 'QPJOBLOG'))
    In der Beschreibung steht jedoch, wenn ich es richtig verstanden habe, das sich dahinter ein CPYSPLF verbirgt.

    Ist die Ausführung IBM intern schneller als wenn ich das in einem CL mache?
    Wir verwenden, in gekapselten Routinen, ab und zu diesen CPYSPLF um bestimmte Listen zusätzlich auszuwerten.

    Wenn es sich um viele sehr kleine Listen handelt ist der Ablauf schon ab und zu etwas schleppend.

    Nur um 'modern' zu werden werden wir den Aufwand nicht betreiben. Wenn es Erfahrungen oder 'Wissen' darüber gibt, das es trotz der Verwendung des gleichen Befehls etwas schneller ist, würde ich das gerne umstellen.
    Könnt Ihr dazu etwas sagen?

    Danke
    Dietlinde Beck

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Die UDTF steht in der Bibliothek SYSTOOLS.
    Bei den (meisten) SQL-Funktionen oder Stored Procedures in der SYSTOOLS ist es möglich sich den Source Code über Reverse Engineering zu generieren.

    Wenn Du das machst, wirst Du festellen, dass die Spool-File-Daten mit Hilfe des CL-Befehls CPYSPLF in eine temporäre Datei ausgegeben wird (wahrscheinlich das gleiche, das Ihr auch macht).

    ... allerdings bietet die UDTF den Vorteil, dass man in einem SELECT-Statement die Daten kopieren und dann sofort weiterverarbeiten kann.
    Birgitta Hauser

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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Nun ja, wenn ich den CPYSPLF selber mache, kann ich die erstellte Datei dann selber auch mit SQL verarbeiten.
    Mit der UDTF wird halt nur eine Schicht mehr dazwischen gelegt.
    Gerade wenn man sehr viele Spools verarbeiten will, reicht ja die einmalige Erstellung der Arbeitsdatei für alle folgenden Schritte, während die UDTF da immer erst noch prüfen muss, ob die Datei bereits da ist um sie zu erstellen. Dazu sollte eine Funktion hinter sich immer aufräumen, also nach dem Closecursor die nicht mehr benötigte PF wieder löschen.
    In deinem eigenen Prozess brauchst du das nicht.
    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
    Aug 2001
    Beiträge
    2.869
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Nun ja, wenn ich den CPYSPLF selber mache, kann ich die erstellte Datei dann selber auch mit SQL verarbeiten.
    Mit der UDTF wird halt nur eine Schicht mehr dazwischen gelegt.
    Gerade wenn man sehr viele Spools verarbeiten will, reicht ja die einmalige Erstellung der Arbeitsdatei für alle folgenden Schritte, während die UDTF da immer erst noch prüfen muss, ob die Datei bereits da ist um sie zu erstellen. Dazu sollte eine Funktion hinter sich immer aufräumen, also nach dem Closecursor die nicht mehr benötigte PF wieder löschen.
    In deinem eigenen Prozess brauchst du das nicht.
    Manchmal würde schon helfen einen Blick in den Source Code zu werfen!
    Die Tabelle wird mit On Replace Delete Rows in der QTEMP erstellt!
    Damit ist weder eine Prüfung, ob die Datei vorhanden ist noch ein Aufräumen, nach dem Ausführen der UDTF erforderlich ... wäre ja auch traurig!
    Birgitta Hauser

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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Trotzdem halte ich persönlich das für unsinnig.
    Nur weil SQL drauf steht, heißt es nicht, dass es besser ist.
    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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... je mehr Schichten, um so langsamer. Kandidat wären da für mich die Spool APIs (QSPGETSP u. Co.), sollte mich aber wundern, wenn die Abweichungen zwischen CPYSPLF, SQL und API da signifikante Unterschiede hervorbringen. Wenn es sich um Batch Abläufe handeln sollte, ist mit Parallelisierung wesentlich mehr erreichbar.

    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
    Aug 2001
    Beiträge
    2.644
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Trotzdem halte ich persönlich das für unsinnig.
    Nur weil SQL drauf steht, heißt es nicht, dass es besser ist.
    Unsinn kann manchmal in der Sicht des Betrachters liegen. Es gibt inzwischen genug IBM i Leute, die mit SQL vertrauter sind als mit CL - und das ist teilweise auch gut so
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Dann bin ich mal gespannt, wann SQL denn RPG, ähem ILERPG ablöst;-).
    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

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.644
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Dann bin ich mal gespannt, wann SQL denn RPG, ähem ILERPG ablöst;-).
    "Ablösen" ist vielleicht nicht der beste Begriff, aber ich kenne so einige Projekte, wo im SQLRPGLE viel Logik mit SQL realisiert wurde. Und warum auch nicht?
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  10. #10
    Registriert seit
    Jan 2003
    Beiträge
    746
    Zitat Zitat von holgerscherer Beitrag anzeigen
    "Ablösen" ist vielleicht nicht der beste Begriff, aber ich kenne so einige Projekte, wo im SQLRPGLE viel Logik mit SQL realisiert wurde. Und warum auch nicht?
    Einfach nur die RLAs durch schickes SQL ersetzen zu wollen ergibt ja auch keinen Sinn.

    Die wahren Vorteile kommen schließlich erst zutage wenn man verquaste Logiken, versteckt hinter seitenlangen Selects, Ifs und Elses sowie dutzenden Bezugszahlen, aus dem RPG in die Datenbank verlegt.

    Damit wäre dann auch endlich vermeintlich unersetzliches Wissen aus den Köpfen der "Alten" gerettet ;- )

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Um meinen Senf auch noch loszuwerden:
    Überführen in SQL ist ja nicht schlecht, sondern erfordert i.d.R. ebenso ein Redesign der Anwendung.
    Nur einfach einen CVTRPGSRC oder Konvertieren in Free per RDI ist keine Designänderung.

    Zu SQL gehört nämlich auf jeden Fall auch die Behandlung von Transaktionen, was wiederum Journalisierung voraussetzt.
    Erst wenn SQL komplett eingeführt ist, kann man auch von SQL sprechen.
    Andere DB's kennen das Thema "Ohne Journal und Transaktion" gar nicht.
    Auch wenn viele das Transaktionskonzept in diesen DB's durch "Autocommit" bereits für gelöst halten.

    Und sicherlich gibt es auch bei diesen Projekten die 3-Stufigkeit.
    - Datenbank
    - Geschäftslogik
    - Frontend/Batch

    Zu Geschäftslogik gehört eben, so viel wie nur irgend möglich in Services (SQL Prozuduren/Funktionen + ILE-Serviceprogramme, Web-Services, ...) zu packen, die dann vom Frontend verwendet werden können.
    Damit kann man auch die Aufgaben sinnvoll an die beteiligten Entwickler je nach Fähigkeiten aufteilen (wenn man die Ressourcen denn auch hat).
    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. CPYSPLF-Befehl
    By alex61 in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 10-03-21, 13:25
  2. CPYSPLF PDF 1.4?
    By chrisssiie in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 19-08-16, 09:45
  3. CPYSPLF und CPYTOSTMF
    By USER777 in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 21-07-15, 11:50
  4. CPYSPLF als pdf mit falscher CCSID
    By Moonwalker in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 14-11-13, 13:01
  5. CPYSPLF mit *AFPDS
    By peter-venkman in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 19-08-02, 21:50

Berechtigungen

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