Because sqlite implicitly starts a new transaction for each insert.
Modify it to wrap all inserts in single transaction and see the
difference, like this:
: insert-test ( -- )
[
sqltest recreate-table
begin-transaction
100 [ sqltest new insert-tuple ] times
commit-transaction
] with-sqltest-db ;
On Fri, 22 Apr 2011 03:06:36 +0600, Tadhg O'Meara <[email protected]>
wrote:
> It takes about 6 seconds to insert 100 records into a sqlite db on my
> Linux x64 system. Is sqlite normally that slow?
> Thanks,
> Tadhg
> Here is the code I used:
> USING: db db.sqlite db.tuples db.types ;
> TUPLE: sqltest id ;
> sqltest "SQLTEST" {
> { "id" "ID" +db-assigned-id+ }
> } define-persistent
> : with-sqltest-db ( quot -- )
> "sqltest.db" <sqlite-db> swap with-db ; inline
> : insert-test ( -- )
> [
> sqltest recreate-table
> 100 [ sqltest new insert-tuple ] times
> ] with-sqltest-db ;
> [ insert-test ] time
------------------------------------------------------------------------------
Fulfilling the Lean Software Promise
Lean software platforms are now widely adopted and the benefits have been
demonstrated beyond question. Learn why your peers are replacing JEE
containers with lightweight application servers - and what you can gain
from the move. http://p.sf.net/sfu/vmware-sfemails
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk