Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#1

Re: [FB 2.1] Schnelle Alternative zu Count(*) ?

  Alt 12. Mai 2009, 19:42
Zitat von Elvis:
Ob es dadurch zu mehr Deadlocks kommt bezweifle ich, schließlich schreibt man da ja nur, wenn man eh schon schreibt (insert/delete).
Wenn zwei Clients gleichzeitig einen neuen Satz in der gleichen Tabelle einfügen, und der Insert-Trigger dann die Satzzahl in der Satzzahl-Hilfstabelle um eins erhöhen will, dann sind das zwar zwei getrennte Inserts (daher natürlich auch kein Deadlockrisiko), aber dennoch zwei konkurrierende Updates auf einen Satz der Hilfstabelle. (Es sei denn, die Hilfstabelle enthält für jede *Transaktion* einen Satz.)

Es kommt zwar nicht zu einem Deadlock, aber sobald zwei Insert-Trigger gleichzeitig die alte Satzzahl lesen, und der erste Trigger diese Zahl (erhöht ums eins) erfolgreich zurückschreibt und committed, kann der zweite Insert Trigger den ursprünglichen Satz nicht mehr updaten (da er sich dadurch verändert hat), und muss aufgeben...
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat