Subject Re: The trouble wth Sweep
Author Paul Beach
Just as an FYI InterBase 6.5 introduced the following new config items.

SWEEP_QUANTUM
This parameter specifies the maximum number of records that a garbage
collector thread or a
sweeper thread is allowed to work before yielding control back to the worker
threads. The
default value is 10.

USER_QUANTUM
This parameter specifies the maximum number of records that a worker thread
(thread running
an user query) is allowed to work before yielding control back to other
threads. The default
value is 100.

SWEEP_YIELD_TIME
This parameter specifies the number of milliseconds the sweeper or the
garbage collector thread
sleeps. The default value is 1 millisecond. Note that this does not affect
worker threads.
Notes These configuration parameters are platform independent; they are
applicable on all
platforms. Note that SWEEP_QUANTUM and SWEEP_YIELD_TIME affect the
sweeper/garbage
collector thread. Thus, ideally, when one is changed the other warrants
change too. For example,
if you change SWEEP_YIELD_TIME to a larger value, then it is advisable to
change
SWEEP_QUANTUM to a larger value also, since the sweeper thread sleeps for a
larger time so it is
good to do more work when its awake. This is particularly true when there
are lots of back
versions in the database. The default values are fine for most applications
however there might
be applications where in a bit of tuning is needed for optimal performance.
Specifying a value of zero or less is ignored by the server and results in
using the default value
for that particular parameter. However, there is no upper limit applied to
these parameters. The
server reports the values for each of these parameters in the interbase.log
file on startup.

Regards
Paul