2009/4/29 Tom van Ees <[email protected]>:
> Hi,
>
> my java application uses a 80Mb reference database (read-only) that needs to
> be consulted app. 4M times during a batch run. I would like to use the
> in-memory capabilities of sqlite3 to improve the performance of my app.
>
> In order to do so, I setup a Connection to the -in-memory- sqlite database
> and next I would like to load the file-version of the reference database as
> efficiently as possible into the in-memory version. What would be the
> practical approach? The .restore/.backup commands do not seem to agree with
> the jdbc-driver.
Perhaps jdbc-driver needs update to implement .restore/.backup?
Anyway, the following tcl script should give an idea of what would work...
# create memory db connection
#
sqlite3 db :memory:
# attach to the source file
#
db eval "attach 'mySource.db' as srcDb;"
# copy schema tables
#
db eval "
select sql from srcDb.sqlite_master
where type = 'table';
" {
db eval "$sql"
}
# copy the data for all tables
#
db eval "
select name from srcDb.sqlite_master
where type = 'table';
" {
db eval "insert into $name select * from srcDb.$name;"
}
# copy schema views, indexes and triggers (+any other non-tables that
I have not thought of)
#
db eval "
select sql from srcDb.sqlite_master
where type <> 'table';
" {
db eval "$sql"
}
# tidy up
#
db eval "detach srcDb;"
>
> regards
>
> Tom
>
Rgds,
Simon
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users