Einzelnen Beitrag anzeigen

hoika

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

Re: Firebird schließt Verbindungen nicht... 100% CPU last

  Alt 21. Nov 2007, 16:02
Halo,

wieso hat eine Transaktion hier keinen Sinn ??

Ohne diese Transaktiomn erzeugt die BDE selbst eine.
Gerade durch diese "manuellen" Transaktionen
erzeugt die BDE nicht bei jeder Aktion selbst eine Transaktion.
OK, hier ist es mal nicht notwendig, schadet aber auch nicht.

Was mich eher stört ist das hier.

If DataBase1.InTransaction = False Then DataBase1.StartTransaction; Warum ist kann eine Transaktion offen sein ?
Das darf (naja sollte) nicht sein.

Das sieht wie Code aus, wo der Programmierer
manchmal an einer offenen Transaktion vorbeicoden muss.

Und genau diese offenen Transaktionen erzeuge auf dem SQL-Server
immer mehr Last (OAT, OIT).

Ich schreibe das immer so.

Delphi-Quellcode:
DataBase1.StartTransaction;
try
  // query bla
  // ev. auch eine DataBase1.RollBack;
finally
  if DataBase1.InTransaction then DataBase1.Commit;
end;

Heiko
Heiko
  Mit Zitat antworten Zitat