读书人

关于sqlite执行时间的疑问?该怎么处理

发布时间: 2012-02-06 15:52:44 作者: rapoo

关于sqlite执行时间的疑问?
数据库中有一个users表。
create table users(name text, number text);
循环插入一百条,不使用事务的话,在我的机器上需要6s。
而在我朋友的机器上这样的操作花费不到1s。

可能是哪方面的原因导致这样的差异?
系统的不同,sqlite版本的不同或是编译器的不同?

C/C++ code
    sqlite3* pHandle = 0;    int nOpenRet = sqlite3_open("/home/test.db", &pHandle);    //ouput_time();    int i = 0;     char sExec[256] = {0};    snprintf(sExec, 255, "insert into users values('user', '1');");    char* pErrMsg=0;    for (; i < 100; i++)    {        if (sqlite3_exec(pHandle,sExec, 0, 0, &pErrMsg)!= 0)        {            printf("sqlite execute fail, i=%d\n", i);            return 0;        }    }


[解决办法]
你机器的硬盘速度。
[解决办法]
配置一样的话,应该跟操作系统以及编译器的版本有关系。100条数据,应该相当快的
[解决办法]
如果机器软硬配置完全相同,则需要用系统监控工具来检查,看是在哪一段开销比较大了。
[解决办法]
用性能分析工具(比如oprofile)比较两边运行的结果,否则都是瞎猜。

读书人网 >其他数据库

热点推荐