Subject | Re: [firebird-support] FB2 speed question |
---|---|
Author | Alexandre Benson Smith |
Post date | 2007-06-06T07:23:04Z |
Lester Caine wrote:
populate that Transact_No Field ?
update Transactions set Transact_no = Gen_id(MyGen, 1);
No dups, the vale will not be reseted for each Ticket_ID, but AFAIU you
just need a unique conjunct.
to 2.0) no problem so far.
1.) Queries that uses NOT IN would not use indices on FB 2.0 so it would
be slower, but always returns the correct results.
2.) Because of the cooperative GC on SS some queries could have to
handle the load to clean-up the garbage left by other transactions, so
in some cases a query would be slow than it would be if cooperative GC
was turned off.
See you !
--
Alexandre Benson Smith
Development
THOR Software e Comercial Ltda
Santo Andre - Sao Paulo - Brazil
www.thorsoftware.com.br
> I'm pushing forward moving everything to use FB2, but I'm finding a number ofnot what you are asking for, but couldn't you just used a generator to
> issues that are causing concern since they are showing FB2 in a bad light :(
>
> The current customer databases are 30 to 40Mb and growing, so I needed to tidy
> an index on one of the detail tables. This was being provided by a timestamp
> to order the few records in detail, the activity on an enquiry which in 90% of
> cases is never more than 2 or 3 records. The speed-up is to add a numeric
> order field so I can look at the 2 or 3 record directly. I've got a stored
> procedure which runs taking about an hour on both FB1.5 and FB2 to populate
> the field. There is a niggle which - while it would be nice to fix is probably
> not worth the effort. A few records in perhaps 100k get 0,1,1,3 or 0,0 rather
> than 0,1,2,3. I'm manually fixing these at present, and once the database is
> updated it will not go wrong again, but the speed problem I'm finding relates
> to a simple query to check for the problem.
>
populate that Transact_No Field ?
update Transactions set Transact_no = Gen_id(MyGen, 1);
No dups, the vale will not be reseted for each Ticket_ID, but AFAIU you
just need a unique conjunct.
> SELECT TICKET_ID, TRANSACT_NO, COUNT(TRANSACT_NO) FROM TRANSACTIONSSo, you have no indices on both databases...
> GROUP BY 1,2
> HAVING COUNT(TRANSACT_NO) > 1
>
> Both TICKET_ID and TRANSACT_NO are numbers, but I can't put the (TICKET_ID,
> TRANSACT_NO) primary key in place until I have removed the duplicates.
>
> On both FB1.5 and FB2 the database is restored from the site copy, the extraCould you provide the plan ?
> field added, the stored procedure loaded and run. Then the check query is run.
> On FB1.5 the answer is back in seconds, on FB2 it's taking minutes! I've
> checked by running everything on the same machine so hardware and OS don't
> come into play.
>
> Can anybody explain why the vast difference. I know once the index has beenI had upgraded my costumers database from 1.5 to 2.0 (and one from 1.0
> applied there will not be such a problem, but the reports that access this
> data are now being asked to handle a year at a time, and early indications are
> that THESE are somewhat slower on FB2 that FB1.5 so I am worried that a switch
> will only cause problems.
>
to 2.0) no problem so far.
> Is there anything I should be looking for in the existing code while I'mI knew 2 things to take care when upgrading from 1.x to 2.0
> updated the source?
>
>
1.) Queries that uses NOT IN would not use indices on FB 2.0 so it would
be slower, but always returns the correct results.
2.) Because of the cooperative GC on SS some queries could have to
handle the load to clean-up the garbage left by other transactions, so
in some cases a query would be slow than it would be if cooperative GC
was turned off.
See you !
--
Alexandre Benson Smith
Development
THOR Software e Comercial Ltda
Santo Andre - Sao Paulo - Brazil
www.thorsoftware.com.br