Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Funktionsweise DBTransaktionen

  Alt 23. Jan 2019, 14:12
Hallo,
SP hatte ich ketzerisch genommen

Wir benutzen if then auf der Client-Seite.

Delphi-Quellcode:
DB.StartTransaction;
Proc1;
if Bla then
begin
  Proc2;
  Proc4;
end;
DB.Commit;
Bei Firebird spielt es schon eine Rolle, ob die DB bei jedem SQL-Befehl eine automatische Transaktion startet oder wir das per Client machen. Das hat mit der MGA (multi generation architecture) zu tun.
Es gibt aktive Transaktionen, die FB berücksichtigen muss.
Je mehr offen sind, desto mehr muss die DB sich quälen.

Deshalb auch immer der Hinweis, keine lange laufenden Transaktionen benutzen ala:
- Fenster öffnen (nein, mache wieder zu! -> ist kalt, ein Delphi-Fenster meinte ich )
- Transaktion starten
- auf Nutzer-Eingabe warten
- 30 Minuten Pause, Mittag
- Insert/Update
- Commit

Machen das 2 Nutzer und 20 andere hämmern fleißig weiter Daten ein, bleibt diese eine Transaktion offen.
Heiko
  Mit Zitat antworten Zitat