关于sqlite执行时间的疑问?

ckt 2010-04-10 09:57:50
数据库中有一个users表。
create table users(name text, number text);
循环插入一百条,不使用事务的话,在我的机器上需要6s。
而在我朋友的机器上这样的操作花费不到1s。

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


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;
}
}
...全文
177 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ckt 2010-04-12
  • 打赏
  • 举报
回复
找到原因了,和系统的文件系统格式差异有关.
在ext3 和ext4上的不同.
谢谢各位回帖
iisbsd 2010-04-11
  • 打赏
  • 举报
回复
用性能分析工具(比如oprofile)比较两边运行的结果,否则都是瞎猜。
ACMAIN_CHM 2010-04-11
  • 打赏
  • 举报
回复
如果机器软硬配置完全相同,则需要用系统监控工具来检查,看是在哪一段开销比较大了。
ckt 2010-04-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iihero 的回复:]
配置一样的话,应该跟操作系统以及编译器的版本有关系。100条数据,应该相当快的
[/Quote]

我在其他两台机器上运行过,一台系统和我的一样都是ubuntu.不过编译器用的不同,
他是使用emacs.
只是觉得编译器造成这样的差异是不是有些夸张?
iihero 2010-04-10
  • 打赏
  • 举报
回复
配置一样的话,应该跟操作系统以及编译器的版本有关系。100条数据,应该相当快的
ckt 2010-04-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acmain_chm 的回复:]

你机器的硬盘速度。
[/Quote]
谢谢你的回复。

我朋友的机器同我的配置都一模一样,所以可以排除这类问题。
ACMAIN_CHM 2010-04-10
  • 打赏
  • 举报
回复
你机器的硬盘速度。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧