Subject Re: [firebird-support] Query slowness
Author Helen Borrie
At 06:56 p.m. 3/06/2013, garethm wrote:
>Hi,
>
>I am currently using Firebird 2.5.1.26351 using Classic Server 64-bit. The database file was created with Firebird 2.5.1.26351 and is 546MB with a page size of 8192. The server and client are both running on my Windows 7 64-bit development machine.
>
>I ran the following query using FlameRobin:
>
>SELECT COUNT(*)
>FROM T1
>
>This query took 8 minutes 56 seconds to run, and returned a result of 131822 rows.
>
>I then closed FlameRobin and reopened it. The same query ran in 0.117s.
>
>I know that doing a database sweep can cause queries to run slowly, and Flamerobin indicates that the sweep interval is set to 20000. Is the sweep the only possible reason for the performance difference between the two runs of the query with classic server if each run is done on a new connection to the database?

It's almost certainly not a sweep but cooperative garbage collection, following a (previous) transaction that did a large number of updates and/or deletes. In fact, those in the know will follow such an operation on Classic with a deliberate select count(*) query, precisely to clear the garbage on the table and avoid having another user take the hit.

>Is 9 minutes a typical time to sweep a table with 131822 records in a 546MB database?

It could be; but I'm pretty sure we aren't talking about a sweep here: it looks like GC on one table.


Helen Borrie, Support Consultant, IBPhoenix (Pacific)
Author of "The Firebird Book" and "The Firebird Book Second Edition"
http://www.firebird-books.net
__________________________________________________________________