Subject | Re: performance loss after rollbacks |
---|---|
Author | kaczy27 |
Post date | 2006-02-13T11:14:06Z |
--- In firebird-support@yahoogroups.com, "Adam" <s3057043@...> wrote:
provided, the transaction ids are in sync (I am not sure whether
there is a proper 1 point difference or a 2 points but that should
not matter that much)
5000-10000 of what?
number from stats)
effectivelly empty and the indices indicate wrong statistics. I
think that this is a reason for performance lossess. As I said
backup/restore is a cure-all.
CUIN Kaczy
>wrote:
> --- In firebird-support@yahoogroups.com, "kaczy27" <kaczy27@>
> >start
> > Hi,
> >
> > I am experiencing great performance loss of the database after
> > rolling back transactions.
> >
> > I am doing quite a lot of those - in my testing module, which is
> > roughly following this patter, 1. get prepared database, 2.
> > transaction 3. verify result correctnes, 4. rollbackrollback on
>
> By rollback, do you mean that you are deliberately calling
> the transaction or simply abandoning the transaction.I am deliberatelly calling RollBack transaction. See the stats I've
provided, the transaction ids are in sync (I am not sure whether
there is a proper 1 point difference or a 2 points but that should
not matter that much)
> IIRC, then calling rollback will attempt to reverse everyinstruction
> that was run which will take a lot longer than abandoning it, butThere
> should not leave its mess around for someone else to clean up.
> is a limit to the size of this "undo log", or the server would runout
> of memory. Once this limit is reached, a rollback simply abandonsthe
> transaction. From memory the limit is somewhere around 5000 -10000.
5000-10000 of what?
> But from your description this is unlikely (although a lot can bedone
> in 2-3 minutes).I've done around 500 transactions during that time (taking this
number from stats)
>run
> Until they are cleaned up, deleted records are still in all the
> indices etc and so will still affect performance. You can try and
> a select count(*) from a table you have just run a lot of changeson
> (after the rollback in a new transaction obviously) which willforce
> the cleanup to happen at that time.The problem is definitelly in indices, since that base is
effectivelly empty and the indices indicate wrong statistics. I
think that this is a reason for performance lossess. As I said
backup/restore is a cure-all.
>database
> You could alternatively run a sweep, or even just backup the
> will force garbage collection unless you choose otherwise.How to perform a sweep?
>Thanks,
> Adam
>
CUIN Kaczy