Hello there,

I would like to get an idea, what (insert) performance I could expect
when building a 3-dimensional (float) R*Tree.

I am using SQLite as a static lib, compiled with the following defines:
"SQLITE_ENABLE_RTREE" "SQLITE_OMIT_DEPRECATED" "SQLITE_THREADSAFE=2"
"SQLITE_MAX_EXPR_DEPTH=0"

The test I performed was on Win7 64-bit.
I am using an in-memory DB. The PC has lots of RAM.

I have 3 tables:
points consists of an implicit rowid and 3 real columns
elemenst consists of 4 integer columns, referencing a points rowid each.

Populating the above tables from an array of data goes with a speed of
approx. 1.2 M elements per second. I am happy with this. I have a
transaction wrapped around a for loop where I bind the parameters and
execute the parametrized query, inserting one row at a time.

Now, I created a table for spatial lookups:
create virtual table boundingboxes using rtree (elemID, minX, maxX,
minY, maxY, minZ, maxZ);

I have a rather poor performance of 50 k inserts per second. The data
to be inserted is precalculated and passed to the loop. I am using the
same logic as above, so the loop is wrapped in a transaction and I use
a parametrized statement.

Is this the performance I can expect, compared to more than a million
inserts into a "simple" table? Could I do something better?

thanks in advance
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to