[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Starte einfach mal ein DB-Monitoring und schau dir den Zugriffsplan im Detail an.
    Dort solltest du erkennen können ob irgendwo irgendwelche CASTs oder ähnliches gemacht wird, was dein Ergebnis verfälschen könnte.

    Wenn du die Statements im Visual Explain nebeneinander Vergleichst bekommst du sicher einen Hinweis.

    lg Andreas

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    853
    Hallo,

    1. um andere Bibbliotheken auszuschliessen
    (zum Test die Dateien qualifiziert lesen )

    2. wie Baldur geschirieben hat
    select felder
    join mit Schlüsselfelder
    where die variablen

    3. MyIndicator
    ist der in der SDS wirklich richtig positioniert ?

    Gruß
    Michael

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.433
    Die Definition deiner SDS enthält 2 Fehler:

    SDjobnum muß 6stellig als "6s 0" definiert werden und MyIndikator muß als eigenständiges Feld (S) nach den Feldern der SDS definiert werden (da er nicht zur SDS gehört).

    Siehe auch die Definition der SDS in ILE RPG.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.804
    Falsche Syntax!

    select F1, f2, ...
    from filea
    inner join fileb on filea.key = fileb.key
    where x1 = ...
    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

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.945
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Falsche Syntax!

    select F1, f2, ...
    from filea
    inner join fileb on filea.key = fileb.key
    where x1 = ...
    Die Syntax, die Tarkusch verwendet ist durchaus zulässig und liefert zumindest für inner joins verwendet werden das gleiche Ergebnis.

    Unterschiedliche COMMIT-Angaben haben keinen Einfluss darauf, ob die Daten gelesen werden können oder nicht!

    Ob die geänderten Daten (für alle Jobs!) gelesen werden können, oder nicht hängt vom Commitment-Level ab, das in dem Job verwendet wurde, in dem der Update erfolgte. Erfolgte der Update entweder ohne Commitment-Steuerung oder mit *CHG, können die geänderten Daten in allen Jobs (mit SQL oder native I/O) gelesen, jedoch nicht verändert werden bevor die Änderung festgeschrieben oder zurückgesetzt wurde. Dabei spielt es keine Rolle, ob in dem Job, in dem die Daten gelesen werden Commitment-Steuerung verwendet wird oder nicht.

    Erfolgte der Update unter einem höheren Commitment Level, können die geänderten Daten auch in Jobs, in denen keine Commitment-Steuerung verwendet wurde nicht gelesen werden.

    M.E. handelt es sich um ein "Bibliothekslisten"-Problem, d.h. entweder stimmt die Bibliotheksliste nicht überein, oder es werden unterschiedliche Namenskonventionen (System / SQL) verwendet oder es wurden unterschiedliche Datenbibliotheken über SET CURRENT SCHEMA gesetzt.

    Birgitta
    Birgitta
    Birgitta Hauser

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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.392
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Die Syntax, die Tarkusch verwendet ist durchaus zulässig und liefert zumindest für inner joins verwendet werden das gleiche Ergebnis.

    Unterschiedliche COMMIT-Angaben haben keinen Einfluss darauf, ob die Daten gelesen werden können oder nicht!

    Ob die geänderten Daten (für alle Jobs!) gelesen werden können, oder nicht hängt vom Commitment-Level ab, das in dem Job verwendet wurde, in dem der Update erfolgte. Erfolgte der Update entweder ohne Commitment-Steuerung oder mit *CHG, können die geänderten Daten in allen Jobs (mit SQL oder native I/O) gelesen, jedoch nicht verändert werden bevor die Änderung festgeschrieben oder zurückgesetzt wurde. Dabei spielt es keine Rolle, ob in dem Job, in dem die Daten gelesen werden Commitment-Steuerung verwendet wird oder nicht.

    Erfolgte der Update unter einem höheren Commitment Level, können die geänderten Daten auch in Jobs, in denen keine Commitment-Steuerung verwendet wurde nicht gelesen werden.

    M.E. handelt es sich um ein "Bibliothekslisten"-Problem, d.h. entweder stimmt die Bibliotheksliste nicht überein, oder es werden unterschiedliche Namenskonventionen (System / SQL) verwendet oder es wurden unterschiedliche Datenbibliotheken über SET CURRENT SCHEMA gesetzt.

    Birgitta
    Birgitta
    ... damit sich da kein Quatsch in den Köpfen festsetzt:
    Bei Daten, die sich in Änderung befinden, können Lesezugriffe mit unterschiedlichem Commit Level durchaus unterschiedliche Ergebnisse liefern.
    Lesezugriffe mit read commited liefern nur konsistente Daten; je nach Implementierung werden Daten überlesen, oder es wird bis zum Ende der jeweiligen Transaktion gewartet. Läuft eine lesende Transaktion auf der AS/400 unter serialized, werden sogar andere Prozesse von updates auf die benutzten Tabellen völlig abgehalten (das ist im DB2 auf der AS/400 richtig schlecht implementiert!!!)

    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/

Similar Threads

  1. Sql Summen bilden 2.Teil
    By tarkusch in forum IBM i Hauptforum
    Antworten: 19
    Letzter Beitrag: 18-12-12, 16:18
  2. Sql Summen bilden
    By tarkusch in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 03-12-12, 16:24
  3. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 11:15
  4. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 15:53
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 10:43

Berechtigungen

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