-
Reicht ein einfaches "COMMIT" nach jeder SQL-Anweisung?
Standarteinstellungen für CRTSQLRPGI sind zur Zeit:
COMMIT(*CS)
OPTION(*SYS *NOEXTIND *COMMA )
TGTRLS(V7R1M0)
ALWCPYDTA(*OPTIMIZE)
CLOSQLCSR(*ENDMOD)
Wo wird der Commit überhaupt gesetzt? Innerhalb des Moduls? Irgendwann nach der Ausführung des/der SQL-Statements oder nicht innerhalb des Moduls?
Erfolgt kein Commit innerhalb des Moduls, könnte die Option CLOSQLCSR=*ENDMOD den Rollback verursachen. Beim Beenden des Moduls werden die ODPs gelöscht (was im Allgemeinen sowieso keine allzu gute Idee ist). Da die Updates vor dem Schließen der ODPs nicht commitet werden, könnte es sein, dass die nicht festgeschriebenen Änderungen zurückgesetzt werden.
Birgitta
-
Cursor (sind nur zum Lesen) haben mit ODP's nicht viel zu tun.
Cursor werden geschlossen, wobei die ODP's zur Optimierung aufbleiben können.
Da ein Cursor keine Daten ändern kann (for-update-Cursor benötigen einen Update) wüsste ich nicht, wie das Schließen einen Rollback auslösen kann.
-
FRCRATIO(1) ist nicht zu verwechseln mit SEQONLY(*YES/*NO).
FRCRATIO(1) hat direkte Auswirkung auf die Performance.
In simpler CPYF wird u.U. um Faktor 1000 langsamer bei eingeschaltetem FRCRATIO(1), was halt mit der Kontrolle zu tun hat, ob der Satz auf der Platte ist oder nicht.
Was die RPG-Pufferung angeht, so trifft diese nur bei I und O-Dateien zu.
Hier wird erst mal nur durch die Runtime "gepuffert" bevor die Daten an das OS abgegeben werden.
Wobei durch FRCRATIO(1) dieses wieder ausgeschaltet wird (ominöse Log-Meldung "Zugriff wurde in SEQONLY(*NO) geändert").
Ich habe in einer Altanwendung allein durch abschalten des FRCRATIO Laufzeiten von Stunden in Minuten gekürzt.
-
Ja sag ich doch, dass FRCRATIO die Performance beeinflusst ...
Allerdings hat das bei RPG nur Auswirkung auf "O"-Dateien, nicht aber bei "I"
(die Eingabe wird dadurch nicht beschleunigt. Das ginge (speziell bei Sequentiellem Lesen) zB durch Einschalten des Expert Cache, welcher komischerweise bei den meisten Maschinen nicht beachtet wird).
Dass durch Abschalten von FRCRATIO das Ganze schneller wird, ist daher klar (aber eben nur beim Output), das habe ich ja aber genau so beschrieben.
-
Stimmt, beim Lesen hat das keine Auswirkung.
FEOD hat keine nennenswert verlangsamende Wirkung.
Bei RPG-geblockten O-Dateien erzwingt dieses nur das Ausgeben des Puffers.
Somit kann man beim Return mit *INLR = OFF sicher sein, alle Daten ans OS abgegeben zu haben.
Der Write-Cache (OS/400, Platten-Puffer) wird trotzdem verwendet.
FRCRATIO führt meist dazu, dass der Blockungswunsch beim Schreiben schon beim OPEN abgelehnt wird, ein FEOD somit nichts zu tun hat.
Similar Threads
-
By mk in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 23-02-15, 16:57
-
By Bodo Roggenkamp in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 10-03-03, 10:54
-
By Willi1 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 02-05-02, 23:54
-
By Carsten in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 05-10-01, 09:42
-
By lorenzen in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-02-01, 11:03
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks