Questions such as this belong on sqlite-users@sqlite.org, not on sqlite-annou...@sqlite.org . Thank you.
On Jun 16, 2010, at 11:24 PM, backup wrote: > hi, everyone, > I program in an embaded system: ARM9 soc S3C2410 +Linux 2.4+sqlite > 3.3. > All data store in NAND FLASH , the file system is YAFFS . > My question is the function "sqlite3_exec(.....)" take too many > seconds, > the following is my source code, please see the "printf" 's comment, > every "sqlite3_exec(.....)" takes 5 seconds, but how to reduce > the time? > > //------------------------------ start of code > #define RECORD_NUM 1 > > char QueryData(void) > { > struct timeval tpstart,tpend; > float timeuse; > > char ErrorFlag=1; > unsigned int di,dj,dk; > DataBuffer[0]='\0'; //DataBuffer is goblal variable > sprintf(sqlstr,"select * from db where isSent=0 limit > %d;",RECORD_NUM); > p(semid); > > gettimeofday(&tpstart,NULL); > rc = sqlite3_exec(db, sqlstr, SQLCallBack, 0, &zErrMsg); > gettimeofday(&tpend,NULL); > timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ > tpend.tv_usec-tpstart.tv_usec; > timeuse/=1000000; > printf("sqlite3 select * Used Time:%f\n",timeuse); // print value :5 > seconds > > > v(semid); > > sprintf(sqlstr,"update db set isSent=1 where ID in (select ID from > db where isSent=0 limit %d);",RECORD_NUM); > p(semid); > gettimeofday(&tpstart,NULL); > > > rc = sqlite3_exec(db, sqlstr, 0, 0, &zErrMsg); > > gettimeofday(&tpend,NULL); > timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ > tpend.tv_usec-tpstart.tv_usec; > timeuse/=1000000; > printf("sqlite3 update Used Time:%f\n",timeuse); //print value : 5s > > > > v(semid); > } > static int SQLCallBack(void *NotUsed, int argc, char **argv, char > **azColName) > { > > struct timeval tpstart,tpend; > float timeuse; > > > int i; > char tstr[500]; > gettimeofday(&tpstart,NULL); > > // argv[0] is ID ,no use for server > sprintf(tstr,"'%s',",argv[1]); > strcat(DataBuffer,tstr); > for(i=2; i<argc; i++){ > // printf("%s,",argv[i] ? argv[i] : "N"); > sprintf(tstr,"%s,",argv[i]); > strcat(DataBuffer,tstr); > } > strcat(DataBuffer,"\n"); > > gettimeofday(&tpend,NULL); > timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ > tpend.tv_usec-tpstart.tv_usec; > timeuse/=1000000; > printf("SQLCallBack Used Time:%f\n",timeuse); // print value : > 0.000280s > > return 0; > } > > //-------------------------- end of code > > > 网易为中小企业免费提供企业邮箱(自主域名) > _______________________________________________ > sqlite-announce mailing list > sqlite-annou...@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-announce D. Richard Hipp d...@hwaci.com _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users