Pascal,
The slow down is probably due to the fact that the transaction takes locks on everything it touches before it commits. Your best approach to attqack this problem will be to use buffering, and then do all processing of data before you strat the transcation. Inside of the transaction you shoudl have only Tableupdate() calls. This will reduce the time of the transaction to its minimum and also the possibility of collisions to a minimum.