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

Reply via email to