I wrote up a test case to do some performance tests for the update
statement, and I'd thought I'd ask before probing around the code first.

I did some comparisons with SQLite3.

The update statement is like this:

update pk_sk set sk=? where pk=?

pk being the primary key.

Using the command line interpreter and running an explain query plan I get:

SQLite3:
0|0|0|SEARCH TABLE pk_sk USING INTEGER PRIMARY KEY (rowid=?) (~1 rows)

SQLite4:
0|0|0|SEARCH TABLE pk_sk USING PRIMARY KEY (pk=?) (~1 rows)

Don't know if that provides anything, thought I'd send it.

So a general synopsis of the tests.  I'm doing random updates when there
are 100,000 rows in a table.

For SQLite3 when using a DB on disk I'm getting around 41,000 updates per
second
For SQLite4 when using a DB on disk I'm getting around 9,200 updates per
second

For the moment I'm not too worried about this, but it's really weird when I
run tests with an in memory DB

For SQLite3: 280,000 updates per second
For SQLite4: 290 updates per second

So why the abysmal drop for the in memory SQLite4?  I'm assuming maybe some
tracer/debug code I know nothing about.  Thought I'd ask about this before
I started getting lost in rooting around code and debugging my two versions
of tests looking for something.  If someone can give a little info. to give
me a better focus on where to look, that would be great.

Thanks,
Rob
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to