Subject | Re: [firebird-support] Re: Performance when deleting a lot of records, again |
---|---|
Author | Ann W. Harrison |
Post date | 2005-04-07T14:32:39Z |
Daniel Rail wrote:
record versions that are visible to active transactions. The problem is
a long-lived snapshot transaction.
doesn't have to have touched the two bad tables. Remember, a snapshot
is a stable view of the database, not just a particular table. That's
important for consistency in many cases. Consider the case of two
tables, credits and debits. If you read credits before another
transaction makes a credit/debit adjustment, then read debits, you must
read the debit table in the state it was in before the change.
Regards,
Ann
>Even if the sweep/garbage collect thread does run, it can't remove
> Because according to your stats, there's 908,214 transactions that
> have a big chance of not being garbage collected. Although you have a
> sweep interval set to 2,000 transactions, it doesn't guarantee that
> the sweep will be performed,
record versions that are visible to active transactions. The problem is
a long-lived snapshot transaction.
>The transaction that's open may not have done anything - it certainly
> Also, is it possible that you have a transaction that might remain
> open? I.e.: A simple read-only select, using a read-write transaction,
> on DEVICE_FREE_SPACE and/or STATUS_KEEPER, either in that application
> or another application.
>
doesn't have to have touched the two bad tables. Remember, a snapshot
is a stable view of the database, not just a particular table. That's
important for consistency in many cases. Consider the case of two
tables, credits and debits. If you read credits before another
transaction makes a credit/debit adjustment, then read debits, you must
read the debit table in the state it was in before the change.
Regards,
Ann