Bonjour,
Je cherche en ce moment un moyen d'optimiser mon code pour que le temps de traitement soit le plus rapide possible. Les diverses insertions qui se trouvent dans mon code sont de cette forme :
if(sqlite3_prepare_v2(db,"INSERT INTO fl3 values(?, ?, ?, ?, ?);",50,&stmt,NULL)!=SQLITE_OK)
{
/* Affiche l'état de chaque requete */
if(warnmsg) step(sqlite3_step(stmt));
if(warnmsg) sqlite3_reset(stmt);
affichage_erreur(errmsg, "write_fl3");
sqlite3_free(errmsg);
return -1;
}else {
sqlite3_bind_text(stmt, 1, badge, 8, NULL);
sqlite3_bind_text(stmt, 2, dt, 14, NULL);
sqlite3_bind_text(stmt, 3, heure1, 14, NULL);
sqlite3_bind_text(stmt, 4, heure2, 14, NULL);
sqlite3_bind_text(stmt, 5, heure3, 14, NULL);

if(warnmsg) step(sqlite3_step(stmt));
if(warnmsg) sqlite3_reset(stmt);
sqlite3_free(errmsg);
return 0;
}
L'exécution de mon programme complet met a peu prés 500ms a s'opérer hors j'ai plusieurs clients simultanées et au final quand je fork() pour faire un benchmark avec mon programme sa commence a faire long. En gros 6 secondes pour 10 clients. La notion de vitesse est très importante dans ce que je réalise. J'ai vu que je pouvais utiliser ceci sqlite3_exec(db,"BEGIN;",0,0,&errmsg); en début et sqlite3_exec(db,"END;",0,0,&errmsg); en fin de requête. Cela permet de bien diminuer le temps d'exécution mais seulement si l'on compte faire 5000 enregistrements avec une requete sql par exemple.
Y a t'il une manière plus rapide en SQLITE3 de faire des insertions et lecture sur une table ? Une façon d'optimiser mon code plus haut ?
Merci pour vos réponses