Subject | Re: [firebird-support] Re: Performance when deleting a lot of records, again |
---|---|
Author | Ann W. Harrison |
Post date | 2005-04-07T14:54:58Z |
Gili Buzaglo wrote:
assuming you can reproduce the problem outside a production environment.
1) Get the database in a state where there is a large gap in transaction
numbers.
2) Shut down one client at a time, doing a gstat -h after each shutdown.
3) When the oldest active value moves, you've found a client that has a
long-lived transaction.
You'll probably have to do this several times - it's possible that every
client has an open snapshot.
Alternately, you can start clients slowly and watch for the gap to start
growing.
Regards,
Ann
>That, unfortunately, is hard. Here is a suggestion that might work,
> But how do I know which transaction was not commited ?
assuming you can reproduce the problem outside a production environment.
1) Get the database in a state where there is a large gap in transaction
numbers.
2) Shut down one client at a time, doing a gstat -h after each shutdown.
3) When the oldest active value moves, you've found a client that has a
long-lived transaction.
You'll probably have to do this several times - it's possible that every
client has an open snapshot.
Alternately, you can start clients slowly and watch for the gap to start
growing.
Regards,
Ann