Fermer2
onurLe 02/05/2008 à 12:06
J'ai fait un essai hier chez moi et je tombe sur des temps de traitement exagéremment longs. Pourtant je fais à peu près ce qui est dit dans les tutos. Voici mon code: int main(int argc, char **argv){      sqlite3 *db;      char *zErrMsg = 0;      int rc;      rc = sqlite3_open("toto.db", &db);      if( rc ){           fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));           sqlite3_close(db);           return 1;           //exit(1);      }      rc = sqlite3_exec(db, "CREATE TABLE tbl ( champ1 int,champ2 int) ", callback, 0, &zErrMsg);      if( rc!=SQLITE_OK ){           fprintf(stderr, "SQL error: %s\n", zErrMsg);           sqlite3_free(zErrMsg);      }      /* initialize random seed: */      //srand ( time(NULL) );      //char cmd[1000];            time_t start,end;      time (&start);      // Compile la requete      sqlite3_stmt* statement;      const char *zTail = 0;      for (int i =0;i<100;i++){           sqlite3_prepare(db,"INSERT INTO tbl (champ1,champ2) VALUES ( ?001, 5 )",1000,&statement,&zTail);           sqlite3_bind_int(statement, 1, i);           // Execute la           rc = sqlite3_step(statement);                 // Nettoyage           sqlite3_finalize(statement);           sqlite3_reset(statement);      }            rc = sqlite3_exec(db, "SELECT * FROM tbl", callback, 0, &zErrMsg);      if( rc!=SQLITE_OK ){           fprintf(stderr, "SQL error: %s\n", zErrMsg);           sqlite3_free(zErrMsg);      }      time (&end);      double dif = difftime (end,start);      printf ("It took you %.2lf seconds to do that.\n", dif );            scanf("%d");      time (&start);      for (int i =100;i<200;i++){           sqlite3_prepare(db,"INSERT INTO tbl (champ1,champ2) VALUES ( ?001, 5 )",1000,&statement,&zTail);           sqlite3_bind_int(statement, 1, i);           // Execute la           rc = sqlite3_step(statement);                 // Nettoyage           sqlite3_finalize(statement);           sqlite3_reset(statement);      }      rc = sqlite3_exec(db, "SELECT * FROM tbl", callback, 0, &zErrMsg);      if( rc!=SQLITE_OK ){           fprintf(stderr, "SQL error: %s\n", zErrMsg);           sqlite3_free(zErrMsg);      }      time (&end);      dif = difftime (end,start);      printf ("It took you %.2lf seconds to do that.\n", dif );      sqlite3_close(db);      return 0; }

ca m'affiche

It took you 12.00 seconds to do that.
...
It took you 11.00 seconds to do that.


:-/

Une idée?