Subject RE: [firebird-support] Re: Performance when deleting a lot of records, again
Author Gili Buzaglo
Can this be the reason:
I have the following scenarion:
1) A connection is open and I have read query run on it.
2) I perform a write query through another connection.
3) I commit the write query
4)I close the statement of the read query.
Can it be because step 3 is before step 4 ?

-----Original Message-----
From: Ann W. Harrison [mailto:aharrison@...]
Sent: Thursday, April 07, 2005 5:33 PM
Subject: Re: [firebird-support] Re: Performance when deleting a lot of records, again

Daniel Rail wrote:
> 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,

Even if the sweep/garbage collect thread does run, it can't remove
record versions that are visible to active transactions. The problem is
a long-lived snapshot transaction.

> 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.

The transaction that's open may not have done anything - it certainly
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.




Yahoo! Groups Links

* To visit your group on the web, go to:

* To unsubscribe from this group, send an email to: <>

* Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service <> .

[Non-text portions of this message have been removed]