-
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
-
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.
-
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.
-
Zitat von Fuerchau
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!
-
Trotzdem halte ich persönlich das für unsinnig.
Nur weil SQL drauf steht, heißt es nicht, dass es besser ist.
-
... 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
-
Zitat von Fuerchau
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
-
Dann bin ich mal gespannt, wann SQL denn RPG, ähem ILERPG ablöst;-).
-
Zitat von Fuerchau
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?
-
Zitat von holgerscherer
"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 ;- )
-
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).
Similar Threads
-
By alex61 in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 10-03-21, 12:25
-
By chrisssiie in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 19-08-16, 08:45
-
By USER777 in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 21-07-15, 10:50
-
By Moonwalker in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 14-11-13, 12:01
-
By peter-venkman in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 19-08-02, 20:50
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks