[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    "Damit erübrigt sich wohl auch irgendwelche temporären Tabellen zu erstellen."
    Klar, wenn man seine Anforderungen nicht überprüft.

    SQL ist eine Massenverarbeitung die ausschließlich von Indizes lebt.
    Nur dann ist SQL schnell.
    Nun liegt es in der Natur der Sache, dass Table-Function keinen Index bieten und SQL somit gezwungen ist, sämtliche Informationen zu lesen, und das dauert, da auch der Aufruf von API's mit allem Drum und Dran (USRSPC-Verarbeitung) eben aufwändig ist.

    Wenn ich aber eine bestimmte Information suche, ist ist durchaus sinnvoll, in Teilergebnissen zu denken.
    Bei der Verwendung von SQL wird gerne die gute alte Tradition des logischen Denkens vernächlässgt. Denn dazu gehört es eben, sich über Zugriffe vorher gedanken zu machen.

    Wenn ich also die Aufgabe betrachte, so stehen da letztlich 3 API-Views zur Verfügung.
    1. Job's um auf die/den Jobs einzuschränken, der auf LOCKW steht.
    Damit reduziert sich bereits im 2. Schritt, die Anzahl der zu prüfenden Job-Satzsperren.

    2. Mit diesen wenigen Jobs (im Zweifel meist nur 1), ermittle ich nun die Objekte, of die diese Jobs warten. Da kommt je Job immer nur 1 Objekt heraus (ausßer bei Multithreading bei z.B. Java).

    3. mit diesen wenigen Objekten (im Zweifel meist nun auch nur noch 1) schaue ich nun, welche Jobs wiederum genau dieses Objekt im Zugriff haben um letztlich Job, Objekt und Satznummer zu erhalten.

    Baue ich alles in einen großen SQL, zwinge ich ja SQL dazu alle Informationen zu ermitteln, also auch die, die ich gar nicht benötige (z.B. tote Jobs), um mir letztlich das selbe Ergebnis zu liefern, dass ich durch Zerlegung in Einzelschritte erreiche.

    Wenn du auf temporäre Tabellen verzichten möchtest, kann man das natürlich auch ausprogrammieren (Declare/Open/Fetch/Close, Schleifen, Compilieren, Testen, korrigieren).
    Mit temporären Tabellen kann ich die Zwischenergebnisse einfacher verifizieren und ggf. dann per Joins aus den Zwischenergebnissen auf die Tablefunctions weitermachen.
    Wenn dann alles klar ist, kann ich das auch noch in eine SRCPF packen und per RUNSQL einfach ausführen.

    Dieses Verfahren (das hat mit Table-Functions wenig zu tun), wende ich sehr häufig an, da SQL mir zu oft auch trotz Indizes einfach zu lange braucht. Erst wenn ich die Aufgabe, so wie früher;-), in Einzelschritte zerlege, komme ich von Minutenlaufzeiten auf Sekunden.
    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Nun habe ich mir die Views mal auf einem V7R3-System angeshen.
    Leider ghen diese Views nicht vom Job, sondern von den Objekten aus.
    Somit ist eine performante Abfrage aus diesen Views leider nicht möglich.

    Aber es hindert euch ja nicht, aus den bekannten API's TABLE-Funtions zu schreiben, die die fehlenden JOB-Informationen (welche Objekte in Benutzung sind) zu schreiben.

    Leider geht auch dei RECORD_LOCK_INFO von den Objekten und nicht von den Job's aus.
    Somit werden alle Objekt ausgewertet, also auch solche, die derzeit in keinem Job verwendet werden.

    Um also obige Aufgabe performant zu lösen, muss man hier leider die klassischen API's verwenden.

    https://www.ibm.com/support/knowledg...s/qdbrjbrl.htm
    https://www.ibm.com/support/knowledg...s/qwcrlcki.htm
    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. SQL index auf view
    By dibe in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 01-07-18, 16:27
  2. SQL CREATE or Replace View
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 19-06-17, 07:10
  3. SQL View mit Index/Key
    By malzusrex in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 19-10-16, 18:53
  4. SQL Create view V5R4
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 07-09-15, 08:29
  5. SQL-View auf /36-Datei
    By GruberWolfgang in forum NEWSboard Programmierung
    Antworten: 17
    Letzter Beitrag: 02-09-15, 21:48

Berechtigungen

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