[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.389
    @Baldur: ich kann da keinen Regen erkennen. Es stellt überhaupt kein Problem dar eine Datenbank einer vorhandenen Anwendung zu journalisieren (wer hier an Platte spart, kann nicht wirklich rechnen). Ich bin zu meinen Zeiten als (Teil)Verantwortlicher noch einen Schritt weiter gegangen und habe grundsätzlich alles journalisiert, obwohl keine einzige Anwendung Commit verwendet hat - alleine die zusätzlichen Möglichkeiten bei Fehleranalyse lassen das sinnvoll erscheinen.

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Für neue Anwendungen ist das ja auch in Ordnung. Leider muss man manchmal Client-Programme auf existierenden ERP-Datenbanken entwickeln die häufig nicht journalisiert werden. Und dann steht man halt mit solchen "Tools" etwas im Regen.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  2. #2
    Registriert seit
    Jul 2004
    Beiträge
    50
    Hallo!

    Mir geht es beim Abschalten vom Journaling vor allem um die Performance. Ich denke mal, dass die Zugriffe um einiges zügiger ablaufen ohne Journaling, oder?
    Ich spreche hier von Massenzugriffen, also sehr viele Befehle welche an die Datenbank übergeben werden.
    Wieviel Prozent Performanceeinbuße hat man durch das Journaling, gibt es da Erfahrungswerte?

    Gruß
    Neptun

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.787
    Fast gar keine !
    Immerhin ist das Netz, dass diese Insert/Updates durchführt ja langsamer als die AS/400. Selbst 10.000 Transaktionen/Sekunde sind keine Seltenheit, dabei wird durchaus mehr als 1 Datei journalisiert.
    Einzig der Rollback kann dann etwas dauern.
    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

  4. #4
    Registriert seit
    Jul 2004
    Beiträge
    50
    Zitat Zitat von Fuerchau
    Fast gar keine !
    Immerhin ist das Netz, dass diese Insert/Updates durchführt ja langsamer als die AS/400. Selbst 10.000 Transaktionen/Sekunde sind keine Seltenheit, dabei wird durchaus mehr als 1 Datei journalisiert.
    Einzig der Rollback kann dann etwas dauern.
    Wow, da hatte ich etwas anderes vermutet. Aber gut, mit dieser Aussage lässt sich arbeiten.

    Ich hatte ja das Journaling im Auge wegen der unterirdischen Performance ... Denn eine andere Anwendung welche die SQL-Befehle mittels ODBC direkt im COBOL-Programm per API-Call's macht (und kein Journaling hat) ist wesentlich schneller.


    Gruß
    Neptun

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.389
    Hallo,

    it depends on, wie so oft!
    - journalisierung muss pro update sequentiell was schreiben, das kostet (fast) keinen Strom, wenn man dafür einen extra ASP oder ausreichend viele Zugriffsarme hat
    - es kostet wenige Prozent mehr CPU, gerechnet auf die Database Workload
    - jegliches forcierte schreiben wird abgeschaltet (Dateien sind ja jetzt redundante Daten!)
    Summa summarum kommt dabei raus, dass bei gesund dimensionierter Hardware die Unterschiede unter der Messbarkeitsschwelle liegen. Wenn man den Overhead bei Fehlersuche und "Reparatur" dazunimmt, dann wird man schneller!!!
    Bei schwach dimensionierter Hardware, kann allerdings ein Tropfen an zusätzlicher Workload ein Fass zum überlaufen bringen, dann liegt das natürlich (gerade bei heutigen Hardwarepreisen) an sparen am falschen Ende.
    - eine Ausnahme ist mir bekannt: grosse SQL Bulkscripte (ala Update xxx set yyy = 2 * yyy) mit zig Millionen betroffenen Sätzen könnten nach deaktivierung von Journalisierung signifikant schneller laufen.
    - ebenfalls ungünstig sind Riesentransaktionen (Batchjob einmal am Ende Commit) Sperren kosten was und viele Sperren können dann bremsen.
    Wie so oft in der Welt bekommt man nix geschenkt, aber eine Abwägung von Hardwareaufwand und Vorteilen spricht für Journalisierung. Hier bekommt man viel für wenig Aufwand und wenn man diesen denn treibt (sprich: die erforderliche Hardware hat), dann gibt es keinerlein Performance Einbußen.

    mfg

    Dieter Bender
    Zitat Zitat von Neptun
    Hallo!

    Mir geht es beim Abschalten vom Journaling vor allem um die Performance. Ich denke mal, dass die Zugriffe um einiges zügiger ablaufen ohne Journaling, oder?
    Ich spreche hier von Massenzugriffen, also sehr viele Befehle welche an die Datenbank übergeben werden.
    Wieviel Prozent Performanceeinbuße hat man durch das Journaling, gibt es da Erfahrungswerte?

    Gruß
    Neptun
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.787
    Wenn eine Anwendung ohne Commit schneller ist als mit Commit, dann ist das meist ein Design-Problem.
    Wenn du AutoCommit aktiv hast, wird natürlich bei jedem Insert eine Commit durchgeführt, was natürlich dauert.
    Steuere das Commit selber und mach den Commit genau dann wenn er aus Datensicht notwendig ist. Im Zweifel halt mit dem letzten Insert/Update/...

    Die andere Anwendung kann ich dann stark ausbremsen, wenn ich die zu schreibende Datei mit FORCE(1) ändere.
    Mein Anwendung mit Journal läuft dann erheblich schneller !!!
    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

  7. #7
    Registriert seit
    Jul 2004
    Beiträge
    50
    Der Lesezugriff ist leider verdammt lahm ... ich habe mir mal das ODBC.log angeguckt. Mir wurde ganz anders ... Ich vermute mittlerweile, dass das Journaling nicht die Quelle des Performance-Übels ist.

    In meinem Testbeispiel sind ein paar hundert Sätze zu lesen, jeweils mit ca. 250 Spalten. Es werden natürlich alle Felder schön artig mit SQLBindColumn gebunden. Allerdings nicht nur einmal, sondern bei jedem (!) SQLFetch (es war klar das SQLFetchScroll [ganzen Block direkt in eine Tabelle lesen] vom Tool nicht verwendet wird, dazu müsste man die Anwendung ja auch stärker umprogrammieren; mal gnz abgesehen davon, dass das Tool dies gar nicht unterstützt, *lol*). Es gibt zwar einen START, für den man auch die WHERE-Klausel beeinflussen kann, aber dennoch wird für jeden SQLFetch wieder 250 mal SQLBindColumn gemacht. Aaaahhhh, ich brauche jetzt jemanden zum Erwürgen


    Gruß
    Neptun

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.389
    Hallo,

    bevor du würgst, solltest du vielleicht mal den Database Monitor konsultieren, da siehst du was die Datenbank draus macht - möglicherweise sind da auch Probleme im Spiel, die man auf Ebene der Datenbank bessern kann (fehlende Indexe). BTW: bei Lesezugriffen ist Journaling aussen vor, Commit level könnte natürlich dennoch eine Rolle spielen (so ab Repeatable Read im Sinne von ANSI SQL)

    mfg

    Dieter Bender

    Zitat Zitat von Neptun
    Der Lesezugriff ist leider verdammt lahm ... ich habe mir mal das ODBC.log angeguckt. Mir wurde ganz anders ... Ich vermute mittlerweile, dass das Journaling nicht die Quelle des Performance-Übels ist.

    In meinem Testbeispiel sind ein paar hundert Sätze zu lesen, jeweils mit ca. 250 Spalten. Es werden natürlich alle Felder schön artig mit SQLBindColumn gebunden. Allerdings nicht nur einmal, sondern bei jedem (!) SQLFetch (es war klar das SQLFetchScroll [ganzen Block direkt in eine Tabelle lesen] vom Tool nicht verwendet wird, dazu müsste man die Anwendung ja auch stärker umprogrammieren; mal gnz abgesehen davon, dass das Tool dies gar nicht unterstützt, *lol*). Es gibt zwar einen START, für den man auch die WHERE-Klausel beeinflussen kann, aber dennoch wird für jeden SQLFetch wieder 250 mal SQLBindColumn gemacht. Aaaahhhh, ich brauche jetzt jemanden zum Erwürgen


    Gruß
    Neptun
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.787
    Das könnte auch an irgendeiner fehlenden PREPARED-Einstellung liegen.
    Wenn der SQL im Programm nicht statisch ist, kann kein Prepare verwendet werden und somit ist das Binden immer neu erforderlich.
    Scheinbar arbeitet dein Tool nicht mit Prepared und ist somit für Massendaten nicht geeignet sondern ist wohl ausschließlich für Dialoge konzipiert.
    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

  10. #10
    Registriert seit
    Jul 2004
    Beiträge
    50
    @Fuerchau
    Korrekt, es wird nicht mit SQLPrepare und SQLExecute gearbeitet, sondern nur mit SQLExecDirect (so konnte ich es im sql.log erkennen). Jedes Statement wird mit SQLAllocStmt zugewiesen, dann SQLExecDirect, dann wird gebunden mit SQLBindCol, dann kommt der SQLFetch, und dann wird mit SQLFreeStmt wieder alles freigegeben.

    Konnte bis jetzt noch keine Einstellung finden, um dieses Verhalten zu beeinflussen.


    Gruß
    Neptun

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.787
    Dann würde ich dir empfehlen, falls möglich, mit ActiveX-Komponenten wie ADO oder halt direkt selber mit CLI (Das sind dieses SQLxxx-Funktionen) zu arbeiten.
    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. Journaling für alle Tabellen eines Schemas einschalten
    By remo2010 in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 24-11-06, 16:24
  2. SQL-Performance Probleme ODBC
    By berndl in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 13-10-06, 10:28
  3. ODBC update
    By synus in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 06-10-06, 16:38
  4. FTP contra ODBC
    By mama in forum IBM i Hauptforum
    Antworten: 30
    Letzter Beitrag: 27-09-06, 10:31
  5. ODBC Verbindung (User, Password)
    By Hubert in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 12-05-06, 12:52

Berechtigungen

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