Using read only transaction has to be a conscious choice on your side.
Jaybird cannot control that for you: not all selects are read-only
operations (e.g. think about `select * from SOME_PROCEDURE`, where
SOME_PROCEDURE also performs modifications), so Jaybird cannot decide
that for you, and also it is impossible to decide from the first
statement what the entire a transaction will need (though granted, in
auto-commit mode, it might be possible).
Which server mode are you currently using SuperServer, SuperClassic or
Classic? Switching from SuperServer to Classic might have benefits
(however, don't forget to tune other things like page buffers
configuration). Also check if you're not running into problems with
long-running transactions inhibiting garbage collection, that might slow
down queries.
Mark
P.S. It is Jaybird with a lowercase 'b', not JayBird :)
--
Mark Rotteveel