Others more knowledgeable will probably offer better advice. I have a
comment and a question instead --
On Aug 17, 2005, at 4:13 AM, Fabian Matyas wrote:
Hi,
I use SQLite 3.0.8 with Quicklite 1.5.0 as wrapper for
it on Mac OS X 10.3.
I made a simple test which creates a table with 10000
rows. The table contains an indexed column named
'Path'.
This is the query I ran:
for i=0 to 1000 do
begin
begin exclusive/immediate transaction
select where Path=<some path>
end transaction
end
Why are you wrapping a SELECT statement inside a transaction? What
purpose does that serve? Transactions are meant for statements that
modify the table, so that, in case of an inconsistency, you can roll
back to the previous consistent state. However, you are not modifying
anything at all. Why not just do a
SELECT columns FROM table WHERE path = <some path>
and be done.
If I use simple beginTransation, the for cycle ends in
8 seconds which is a good time.
Even 8 seconds is way too much for a simple SELECT. In fact, 8 seconds
is way too much even for an INSERT. There is something else going on
here.
--
Puneet Kishor