|Subject||RE: [firebird-support] FOR SELECT .. DO .. UPDATE is slow|
>>FOR SELECT int_mov_id,mny_credit,
where BLN_CALC = 'N'
into :MovID , :Credit, :Debit, :Balance
NewBalance = OldBalance + Credit - Debit;
update TB_MOV set
mny_balance = :NewBalance,
bln_calc = 'S'
where int_mov_id = :MovID;
OldBalance = NewBalance;
>>If the update has been removed and it is still slow the only thing I can
think about is the WHERE BLN-CAL = 'N' condition on your select statement.
Is that field indexed? That could affect speed.
Also, if your update is changing an indexed field that will take longer
since to my knowledge, and others can correct me please, an indexed field is
recalculated for every commited transaction that updates the field.
Disabling the index before the update and then reactivating it afterwards
could speed up the process.
[Non-text portions of this message have been removed]