My computer has 4 cores. I have compile sqlite like this "gcc
-DSQLITE_MAX_WORKER_THREADS=4 -DSQLITE_DEFAULT_WORKER_THREADS=4 shell.c
sqlite3.c -lpthread -ldl -o sqlite3". I made some tests and found that
"pragma threads = 4" doesn't decrease runtime of the query that sorts 1
milion records.
SQLite version 3.8.8
sqlite> pragma threads;
4
sqlite> CREATE TABLE event (
ID INTEGER PRIMARY KEY NOT NULL,
date INTEGER NOT NULL,
value INTEGER NOT NULL );
sqlite> EXPLAIN QUERY PLAN SELECT ID FROM event ORDER BY date LIMIT 1;
0|0|0|SCAN TABLE event
0|0|0|USE TEMP B-TREE FOR ORDER BY
sqlite> SELECT ID FROM event ORDER BY date LIMIT 1;
4101021
Run Time: real 2.493 user 2.426000 sys 0.049000
sqlite> pragma threads = 0;
0
sqlite> SELECT ID FROM event ORDER BY date LIMIT 1;
4101021
Run Time: real 2.484 user 2.421000 sys 0.044000
To sum it up I have:
- multi core cpu;
- sqlite that is compiled to use "auxiliary threads";
- a table with 1 million records;
- a query that scans through the table, sorts all records and outputs
the first ID.
sqlite doesn't use these "auxiliary threads" that sqlite docs talks
about and the runtime of that query is the same with or without "pragma
threads = 4".
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users