Could be different compilation settings for sqlite (or libs).

*Jonas Malaco Filho*



2012/7/15 xp <needforspeed1...@gmail.com>

> Hi,
>
> I am a sqlite newbie. I would be very grateful if anyone can answer my
> question or point me to the right direction.
>
> I have a very simple database:
>
> create table epics_channel(
>   id integer primary key,
>   epics_pv text unique,
>   value_type text,  -- current or voltage
>   value real default 0.0
> );
> --------- Populate EPICS channel table --------------
> insert into epics_channel(epics_pv, value_type) values ('01QM000I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('01MP001I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('01MP002I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('01MP003I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('02MP001I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('02MP002I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('02MP003I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('02MP004I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('02MP005I01',
> 'current');
> insert into epics_channel(epics_pv, value_type) values ('02MP006I01',
> 'current');
>
> And a single c++ code to update the database:
>
>  sqlite3* db;
>   char* errmsg;
>   sqlite3_open("example.db", &db);
>   sqlite3_enable_load_extension(db, 1);
>   const char* lib = "./libsqliteext.so";
>   sqlite3_load_extension(db, lib, 0, &errmsg);
>
>   std::string sql;
>   sqlite3_stmt* stmt;
>
>   for(int j = 1; j <=10; ++j )
>   {
>     std::stringstream val;
>     std::stringstream id;
>     val << a_number; id << j;
>     sql = "update epics_channel set value = " + val.str() + " where id = "
> +
> id.str();
>     sqlite3_prepare(db, sql.c_str(), -1, &stmt, NULL);
>     sqlite3_step(stmt);
>     sqlite3_finalize(stmt);
>   }
>
> I ran the same code on a 64bit(scientific linux 6.1) and a 32bit(fedora 17)
> linux box. it took 0.113859 sec for the 64bit system to finish, but 14.4922
> sec for the 32bit fedora 17.  Can anyone tell me why it was so slow on the
> 32bit system?
> And I noticed this only happened for the "update". If I use "select", it
> took both systems about the same time to finish.
>
>
> --
> View this message in context:
> http://sqlite.1065341.n5.nabble.com/Updating-on-32bit-os-slower-than-64bit-tp63292.html
> Sent from the SQLite mailing list archive at Nabble.com.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to