[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    May 2004
    Beiträge
    184

    SQL Datenreihenfolge

    Hallo Kollegen,

    ich habe eine Merkwürdigkeit.
    Wenn ich mit folgendem SQL Statement eine Abfrage auf meine Datei mache :

    SELECT rrn(File), VORSCHL_NR, POS_NR FROM
    File WHERE VORSCHL_NR = 100

    erhalte ich folgendes Ergebnis :
    RRN (File) VORSCHL_NR POS_NR
    8.893 100 1
    8.894 100 2
    8.895 100 3
    8.896 100 4
    8.897 100 5
    8.898 100 6
    8.899 100 7
    8.900 100 8
    8.902 100 10
    8.903 100 11
    8.904 100 12
    8.907 100 15
    8.901 100 9

    bei folgenden Statement :
    SELECT rrn(File), VORSCHL_NR, POS_NR FROM
    bev_pos WHERE VORSCHL_NR > 100

    ist das Ergebnis :

    RRN ( BEV_POS ) VORSCHL_NR POS_NR
    8.893 100 1
    8.894 100 2
    8.895 100 3
    8.896 100 4
    8.897 100 5
    8.898 100 6
    8.899 100 7
    8.900 100 8
    8.901 100 9
    8.902 100 10
    8.903 100 11
    8.904 100 12
    8.905 100 13
    8.906 100 14
    Die Reihenfolge ist im oberen Statement nicht richtig. (Siehe Pos_nr 9).

    Die gleiche Datei wird mit ORION auf ein anderes System gespiegelt. Dort habe ich nicht diese Merkwürdigkeit.
    Wir haben vor kurzem von V5R3 auf V5R4 gewechselt. Hat es damit etwas zu tun und wie kann ich das bereinigen.

    Danke für Eure Hilfe
    Jenne

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn du keinen "Order By" verwendest, ist die Sortierfolge nicht gewährleistet sondern ist bedingt durch die Verwendung von Zugriffspfaden, Eingangsfolge bei REUSEDLT(*NO), oder Satz-Nr. bei REUSEDLT(*YES).
    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

  3. #3
    Registriert seit
    May 2004
    Beiträge
    184
    Hallo Fuerchau,

    bei beiden Dateien ist REUSEDLT = *YES

    Gruß
    Jenne

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Aber beide Systeme sind nun mal nicht identisch und was ein Optimizer da treibt ist auch nicht gewährleistet.

    Warum sträubst du dich gegen ein simples "order by VORSCHL_NR, POS_NR " ?

    Die RRN ist sowieso auch keine verlässliche Information.
    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
    May 2004
    Beiträge
    184
    Hallo Fuerchau,

    ich sträube mich nicht gegen ein Order by, ich möchte es nur verstehen und eine Erklärung dafür haben.

    Gruß
    Jenne

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Hat das andere System das selbe Betriebssystem-Release und den selben PTF-Stand?

    Ergänzung:

    Das Ergebnis der zweiten Abfrage kann nicht stimmen!?
    Die Abfrage liefert doch hoffentlich keine Werte, die nicht zur WHERE-Bedingung passen?

  7. #7
    Registriert seit
    May 2004
    Beiträge
    184
    Hallo Pikachu,

    hatte mich bei der 2. where Bedinung verschrieben sollte >= sein. Beide Systeme haben V5R4 und wurden in einem Abstand von 3 Wochen auf diesen Release-Stand gebracht.

    Gruß
    Jenne

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hallo,

    zur Erklärung:
    Bei der ersten Abfrage = 100 verwendet der Optimizer einen Zugriffsweg (Index), da die Daten auf diese Art und Weise am schnellsten ermittelt werden können.

    Bei der zweiten Abfrage wird nach Eingangsfolge gelesen, da die Daten auf diese Art und Weise am schnellten ermittelt werden können.

    Der Optimizer verwendet einen Zugriffsweg, sofern ein passender Zugriffsweg angelegt ist und das Ergebnis bis ca. 20% der Gesamtanzahl der Datensätze umfasst.

    Wird die Abfrage von der SQE ausgeführt wird die Anzahl der auszugebenden Sätze über die Statistiken ermittelt. Bei Ausführung über die CQE werden Schätzwerte verwendet. Bei einer Abfrage auf = wird von 10% ausgegangen und bei einer > oder < Abfrage von 33%.
    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

  9. #9
    Registriert seit
    May 2004
    Beiträge
    184
    Ich Danke Euch allen für die vielen Erklärungen.

    Jetzt habe ich es verstanden

    Gruß
    Jenne

  10. #10
    Registriert seit
    Nov 2006
    Beiträge
    102
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Aber beide Systeme sind nun mal nicht identisch und was ein Optimizer da treibt ist auch nicht gewährleistet.

    Warum sträubst du dich gegen ein simples "order by VORSCHL_NR, POS_NR " ?

    Die RRN ist sowieso auch keine verlässliche Information.
    Obwohl alle Fragen beantwortet sind, möchte ich mich gerne Fuerchaus Aussage anschließen, weil ich finde, dass der Thread (gemessen am eigentlichen Problem) ziemlich esotherisch geworden ist, und dass Fuerchaus Statement wichtig ist. Was spricht dagegen, in eine Anweisung das hineinzuschreiben, was man haben will? Dann ist sie später auch für andere nachvollziehbar, ganz ohne Woodoo.

  11. #11
    Registriert seit
    May 2004
    Beiträge
    184
    Hallo Spateneder,

    wie ich mich schon darüber geäussert habe (s.o.), sträube ich mich doch garnicht dagegen. Es geht mir nur um das Verstehen.

    Gruß Jenne

  12. #12
    Registriert seit
    Nov 2006
    Beiträge
    102
    Hallo Jenne,
    das ist schon klar. Ich fand es einfach wichtig, bei allem (löblichen) Forscherdrang das Wesentliche nicht aus den Augen zu verlieren. Als oller AS/400-Programmierer habe ich so viel mit unnötiger Geheimniskrämerei zu tun, dass es mir ein Anliegen war, meinen Senf dazuzugeben. Nix für ungut!
    Grüße
    M. Spateneder

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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