[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo Holger,
    wie Du weißt bin ich ein Fan der schwarzen Kiste, aber ich hatte gehofft das die Kiste im direketen Vergleich zu mysql besser ist ohne das man PTF Stand und intime Kenntnisse der QueryEngine haben muß.
    Das man mit dem Wissen von Birgitta mehr aus der Kiste rausholen kann ist schon klar aber auch einer wie ich sollte damit glücklich werden.

    GG
    Hi KingofKning,
    bin da ganz deiner Meinung.
    Ich glaube aber nicht, dass die beiden DB-Systeme ident sind. Oracle ist eine DB die man mit einer DB2 vergleichen kann, aber MySQL und das mit so einem großen unterschied?? Da könnten wir ja gleich MS-Access gegen die DB2 antreten lassen.
    Da wird mit Sicherheit irgendwas sein was extrem bremst. Eventuell Primärschlüsseln die bei MySQL vorhanden sind und bei der DB2 nicht? Dadurch hätte MySQL gegen der DB2 einen (nicht unwesendlichen) Vorteil.
    Deshalb würde ich auch (wie ich auch schon oben geschrieben habe) nachschauen was der Flaschenhals ist und dann sieht man schon genaueres.

    Eventuell sind die Einstellungen in der QAQQINI nicht korrekt. Schaun obs in der QUSRSYS eine QAQQINI gibt und welche Werte die hat. Wenn in der Lib eine vorhanden ist wird die nämlich als für alle SQL-Anweisungen als Default hergenommen.

    Noch ein kleiner Tipp: Egal ob mit SQL oder Native I/O bei DDS Tabellen werden die Daten nur beim Lesen geprüft und bei SQL-Tabellen nur beim Schreiben. Da mehr gelesen wird als geschrieben sind SQL-Tabellen auch Performanter.

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... das ist eines dieser Märchen, die ungeprüft von einem zum anderen weiter erzählt werden (sorry, dass es dich jetzt mit meiner Antwort erwischt). Dieser Mythos geht zurück auf einen Artikel von Dan Cruikshank, der vom IBM Marketing weiter verbreitet wird (http://www-03.ibm.com/systems/resour...e_DDS_SQL.pdf), obwohl er der DB2/400 ein verheerendes Zeugnis ausstellt: das würde nämlich bedeuten, dass bei einer beschädigten Tabelle aus einer SQL Tabelle jeder beliebige Dreck hochkäme...
    Ich habe mir das bereits bei erscheinen mal näher angesehen:
    - die Maschine hungert (muss eine alte Möhre sein) die braucht für einen read so um die 3 Millisekunden
    - CPU Verbrauch ist bei SQL und DDL ziemlich identisch (und welche Ressource braucht Prüfung?)
    - die Verarbeitungszeit ist klar durch "Waits" dominiert (99%), was in diesem Fall I/O bedeutet.
    Schlussfolgerung: die Begründung für die Zeitunterschiede ist glasklar falsch (Dummfug, der Dummfugigsten Sorte, würde Fred Feuerstein sagen). Was näher liegt ist, dass sich die Blockgrößen beim lesen unterscheiden, ist aber spekulativ.

    Kommen wir zu den Zeitunterschieden und deren Relevanz:
    Auffallend sind auf den ersten Blick die seltsamen Skalierungen und die unterschlagenen Differenzen. Die Gesamtlaufzeit der Testprogramme differiert von 21 zu 25 sec, der Teil für die Leseschleife von 15 zu 26. Selbst wenn ich jetzt annehme, dass die Unterschieder korrekt und typisch wären, ergibt sich im vorliegenden Fall, dass aus den 2 Sekunden (lesen ohne order by) 1,5 Sekunden würden, die 20 Sekunden würden dann auf 19,5 Sekunden abnehmen.

    Konsequenz 1: glaube keiner Benchmark, die du nicht selber gefälscht hast!
    Konsequenz 2: Es gibt keine Patentrezepte (die wären dann schon eingebaut)

    D*B

    Zitat Zitat von andreaspr@aon.at Beitrag anzeigen
    Noch ein kleiner Tipp: Egal ob mit SQL oder Native I/O bei DDS Tabellen werden die Daten nur beim Lesen geprüft und bei SQL-Tabellen nur beim Schreiben. Da mehr gelesen wird als geschrieben sind SQL-Tabellen auch Performanter.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von BenderD Beitrag anzeigen
    ... (sorry, dass es dich jetzt mit meiner Antwort erwischt).
    ...
    Konsequenz 1: glaube keiner Benchmark, die du nicht selber gefälscht hast!
    Konsequenz 2: Es gibt keine Patentrezepte (die wären dann schon eingebaut)
    Da wir alle hier sind damit wir auch was lernen können, habe ich mit der Antwort auch kein Problem.
    Ich selbst bin mit der Zeit sehr vorsichtig geworden zu behaupten was falsch und was richtig ist, wenn ich es nicht zu 99% weis!
    Das Beispiel in dem 4 Tabellen erstellt werden (2 DDS & 2 SQL, je eine Tabelle mit einer Dec-Spalte und die andere Tabelle mit einer Char-Spalte) zeigt für mich, dass ich in eine DDS-Tabelle (Spalte Numeric 7 0) sehrwohl Werte aus einem Char-Feld hinzufügen kann. Auch wenn es sich um alphanummerische Werte handelt.
    CPYF FROMFILE(TESTLIB/T1) TOFILE(TESTLIB/T2) MBROPT(*ADD) FMTOPT(*NOCHK)
    Bei SQL-Tabellen geht das zwar auch, jedoch gibt es (im gegensatz zu DDS) EINE Fehlermeldung, wenn im Char-Feld keine nummerisch genormte Zeichenfolge enthalten ist.
    Das ist kein Voodoo und kann auch jeder ausprobieren und testen.
    Von dem her bedarf es schon einer sehr, sehr guten Erklärung, dass DAS nicht so ist wie es ist!
    Wie sehr sich das auf die Performance auswirkt sei dahingestellt. Habe leider selbst noch keine aussagekräftige Benchmarks machen können.

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... in meinem Beitrag ging es klar um den Teil des lesens der Tabelle und um die Behauptung, dass SQL erstellte Tabellen Perfomancevorteile wegen - !!!andersartiger Prüflogik!!! - hätten. Wenn dich das tiefer interessiert - da ist noch mehr krumm, die Prüfung beim record level access erfolgt erst nach dem lesen, im Programm, beim übertragen der Felder (merkt man, wenn man mit Programm interner Beschreibung liest).

    D*B


    Zitat Zitat von andreaspr@aon.at Beitrag anzeigen
    Da wir alle hier sind damit wir auch was lernen können, habe ich mit der Antwort auch kein Problem.
    Ich selbst bin mit der Zeit sehr vorsichtig geworden zu behaupten was falsch und was richtig ist, wenn ich es nicht zu 99% weis!
    Das Beispiel in dem 4 Tabellen erstellt werden (2 DDS & 2 SQL, je eine Tabelle mit einer Dec-Spalte und die andere Tabelle mit einer Char-Spalte) zeigt für mich, dass ich in eine DDS-Tabelle (Spalte Numeric 7 0) sehrwohl Werte aus einem Char-Feld hinzufügen kann. Auch wenn es sich um alphanummerische Werte handelt.
    CPYF FROMFILE(TESTLIB/T1) TOFILE(TESTLIB/T2) MBROPT(*ADD) FMTOPT(*NOCHK)
    Bei SQL-Tabellen geht das zwar auch, jedoch gibt es (im gegensatz zu DDS) EINE Fehlermeldung, wenn im Char-Feld keine nummerisch genormte Zeichenfolge enthalten ist.
    Das ist kein Voodoo und kann auch jeder ausprobieren und testen.
    Von dem her bedarf es schon einer sehr, sehr guten Erklärung, dass DAS nicht so ist wie es ist!
    Wie sehr sich das auf die Performance auswirkt sei dahingestellt. Habe leider selbst noch keine aussagekräftige Benchmarks machen können.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von BenderD Beitrag anzeigen
    ... in meinem Beitrag ging es klar um den Teil des lesens der Tabelle und um die Behauptung, dass SQL erstellte Tabellen Perfomancevorteile wegen - !!!andersartiger Prüflogik!!! - hätten. Wenn dich das tiefer interessiert - da ist noch mehr krumm, die Prüfung beim record level access erfolgt erst nach dem lesen, im Programm, beim übertragen der Felder (merkt man, wenn man mit Programm interner Beschreibung liest).

    D*B
    Wie ich geschrieben habe, kann ich über die Performance nichts sagen, damit könntest du auch recht haben. Ich will nur nicht, dass jetzt jeder glaubt, dass die Prüfung wie ich sie beschrieben habe von den Lesern auch als Mythos verstanden wird.

Similar Threads

  1. SQL inner join
    By Robi in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 22-06-07, 15:52
  2. SQL left join
    By ahingerl in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 08-12-06, 08:28
  3. SQL JOIN
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-10-06, 07:56
  4. MS Access ODBC mit JOIN: SQL FEHLER666
    By olafu in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-10-06, 08:13
  5. SQL Performance
    By mariupol1963 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 11-08-06, 13:06

Berechtigungen

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