[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.808
    Ein Select ist eine Massenoperation und muss optimiert werden. Deshalb müssen UDF's so einfach wie irgend möglich gestaltet werden.
    Du kannst ja nicht verhindern, wo die UDF denn verwendet wird.
    Ggf. fällt jemandem ein, dies in der Where-Klausel zu tun und dann kann im Zweifel ein Tablescan passieren statt eines Indexscans.

    Schau dir das Transaktionsszenario an:
    *CHG liest Daten die Committed sind.
    Wenn du also bei einem Select, der 1000de und Millionen von Zeilen liest, eine UDF mit Commit verwendest stellst du den Optimizer vor gewaltige Probleme. Auch andere parallele Zugriffe aus anderen Verbindungen/Jobs werden ggf. Konsistenzprobleme bekommen.

    Eine Transaktion in einer DB stellt grundsätzlich kein Problem dar.
    Wenn sie denn via Businesslogik vom Client der DB initiiert und kontrolliert wird.
    Denn wenn mir irgend eine UDF da dazwischen funkt, kann ich meiner Transaktion nicht mehr sicher sein und auf einen Rollback keinen konsistenten Zustand bekommen.

    Ein Commit schreibt geänderte Daten fest!
    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
    Jan 2012
    Beiträge
    1.237
    Zitat Zitat von Fuerchau Beitrag anzeigen

    Eine Transaktion in einer DB stellt grundsätzlich kein Problem dar.
    Wenn sie denn via Businesslogik vom Client der DB initiiert und kontrolliert wird.
    Denn wenn mir irgend eine UDF da dazwischen funkt, kann ich meiner Transaktion nicht mehr sicher sein und auf einen Rollback keinen konsistenten Zustand bekommen.

    Ein Commit schreibt geänderte Daten fest!
    Langsam wird mit die Problematik mehr und mehr bewusst. In meinem Fall weiß ich natürlich, dass die UDF nur für einen ganz bestimmten Zweck verwendet wird. Aber mir ist dank eurer Erklärungen jetzt klarer, dass man nicht einfach so zwischendurch Transaktionen einstreuen kann.

    Ich würde meine Problem am liebsten alle mit RPG lösen. Aber bei Blobs ist RPG ja sehr stark größenbeschränkt. Da erscheint mir SQL als das naheliegende Werkzeug.

Similar Threads

  1. Variable als Parameter für SUBSTR in SQL-Anweisung (UDF)
    By hartmuth in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 24-07-14, 11:52
  2. RPGLE an einer Transaktion teilnehmen lassen?
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 24-02-11, 09:37
  3. Erstellen einer UDF mit UNION
    By e_sichert in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 09-05-08, 14:25
  4. Probleme mit dem Aufruf einer UDF
    By e_sichert in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 08-05-08, 10:35
  5. SQL0332 beim SQL-Aufruf einer UDF(Java)
    By Ewald in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 24-01-07, 15:38

Berechtigungen

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