Hi Ann,

>Just curious, why do you say both "COMMIT" and "end transaction" - Commit
ends the transaction.

Yes you are right.  I shouldn't have said "end transaction" but I will
answer your question why.  I use the IBPP library for C++ and you create a
pointer to the transaction.  Immediately after either a COMMIT or a
ROLLBACK, the transaction pointer is immediately destroyed.  In my mind, I
saw the destruction of the transaction pointer as the end of the
transaction's lifetime.



On Tue, Dec 22, 2015 at 2:39 PM, Ann Harrison aharri...@ibphoenix.com
[firebird-support] <firebird-support@yahoogroups.com> wrote:

>
>
> On Tue, Dec 22, 2015 at 2:17 PM, Caroline Beltran
> caroline.d.belt...@gmail.com [firebird-support] <
> firebird-support@yahoogroups.com> wrote:
>
>>
>>
>> Since I began using Firebird, I have kept my transactions (type
>> concurrency) very short and then call COMMIT immediately afterward.  This
>> has worked very well.
>>
>> I recently had the need to perform more complex processing and what I did
>> was to keep everything short and modular.  But I am now seeing that my
>> design in this specific case was flawed.
>>
>> I am updating different parts of the same record repeatedly and I believe
>> that this is causing multiple back versions which causing excessive disk
>> write I/O and slowing things down terribly:
>>
>> a) begin a transaction, update FIELD_1 of MYTABLE, COMMIT, and end
>> transaction.
>>
>
> Just curious, why do you say both "COMMIT" and "end transaction" - Commit
> ends the
> transaction.
>
> Good luck,
>
> Ann
>
>> b) begin a transaction, update FIELD_2 of MYTABLE, COMMIT, and end
>> transaction.
>> c) begin a transaction, update FIELD_3 of MYTABLE, COMMIT, and end
>> transaction.
>> d) begin a transaction, update FIELD_4 of MYTABLE, COMMIT, and end
>> transaction.
>> e) begin a transaction, update FIELD_5 of MYTABLE, COMMIT, and end
>> transaction.
>> Note: other tables are inserted and updated during during transactions
>> a-e but those tables are not presenting any problems.  The problem is with
>> MYTABLE.
>>
>> Of course, I normally update all fields in one transaction but in this
>> particular case, determining the contents of each field is a complex
>> process that requires manipulation and analysis of the the data provided by
>> a number of other Firebird SELECT queries to the database.
>>
>> I am averaging about 300 transactions per minute during this process that
>> may last 12 hours and during that time, things get terribly slow.
>>
>> So can someone confirm my suspicions, will each of the 5 transactions
>> above to the same row of data cause 5 new 'back versions'?
>>
>> Like I said, I have always kept transactions very short.  I am thinking
>> of something like this instead:
>>
>> a) begin a transaction, update FIELD_1 of MYTABLE.
>> b) update FIELD_2 of MYTABLE.
>> c) update FIELD_3 of MYTABLE.
>> d) update FIELD_4 of MYTABLE.
>> e) update FIELD_5 of MYTABLE, COMMIT, and end transaction.
>> If something fails anywhere in between, I would ROLLBACK this single
>> transaction.
>>
>> Keeping my transactions shorter and more modular as above is easier from
>> a development point of view but I have the back version performance issue.
>> Although the second method means a much longer transaction, I won't have
>> back versions to deal with.  Do you think that this approach would be
>> better?
>>
>> Thank you
>>
>> P.S.  Sweeping the database does not help with the performance problem,
>> the only temporary solution to regain performance is to backup using GBAK
>> and restore.
>>
>>
>>
> 
>
  • [firebird... Caroline Beltran caroline.d.belt...@gmail.com [firebird-support]
    • Re: ... Ann Harrison aharri...@ibphoenix.com [firebird-support]
      • ... Caroline Beltran caroline.d.belt...@gmail.com [firebird-support]
    • Re: ... Ann Harrison aharri...@ibphoenix.com [firebird-support]
      • ... Dmitry Yemanov dim...@users.sourceforge.net [firebird-support]
        • ... Ann Harrison aharri...@ibphoenix.com [firebird-support]
          • ... 'Leyne, Sean' s...@broadviewsoftware.com [firebird-support]
            • ... Dmitry Yemanov dim...@users.sourceforge.net [firebird-support]
              • ... Ann Harrison aharri...@ibphoenix.com [firebird-support]
    • Re: ... Alexey Kovyazin a...@ib-aid.com [firebird-support]
      • ... Ann Harrison aharri...@ibphoenix.com [firebird-support]

Reply via email to