Hello,

I am running into a real odd problem that I hope someone can explain.  I
have a simple query:

BEGIN;
SELECT * FROM users WHERE uid >= 1 LIMIT 10;
COMMIT;

Simple enough.  No reason to use a transaction, but I use them for another
reason, actually.  The problem I run into is:  If I execute the above
statement 3 times, it works fine.  It takes 70 ms to execute the select
statement.  On the fourth time of execution the select statement takes over
5 seconds to execute!!  I can execute the statement again after the 5
seconds, and it's back to a 70 ms execution.  Then after other time I
execute this statement it takes 5 seconds.  So it goes like this:

First time: 70ms
Second time: 70ms
Third time: 70ms
Fourth time: 4956ms
Fifth time: 70ms
...
Nth time: 49xxms
Nth+1 time: 70ms

As you can see this is a long wait on every other select.  Overview of the
table:

Has two blobs, a bunch of integers and one index (on uid).  Though since
sqlite is typeless the types shouldn't matter except for the index.  The
table itself only has about 1600 entries in it (and is about 360k in size).

Is the huge select time a problem with LIMIT?  With using selects in
transactions?  Some kind of caching thing with transactions? Or maybe a bug?

I can recreate this situation every single time.

Jay Macaulay


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to