J'ai récemment lu à propos de SQLite et j'ai pensé que j'essaierais. Quand j'insère un enregistrement, ça fonctionne bien. Mais quand j'en insère cent, cela prend cinq secondes, et au fur et à mesure que le nombre d'enregistrements augmente, le temps passe. Quel pourrait être le problème? J'utilise le SQLite Wrapper (system.data.SQlite)
:SQLite Insert très lent?
dbcon = new SQLiteConnection(connectionString);
dbcon.Open();
//---INSIDE LOOP
SQLiteCommand sqlComm = new SQLiteCommand(sqlQuery, dbcon);
nRowUpdatedCount = sqlComm.ExecuteNonQuery();
//---END LOOP
dbcon.close();
+1 Ceci est mentionné dans le [SQLite FAQ, # 19] (http://www.sqlite.org/faq.html#q19) - lorsque vous faites ceci sans début/fin, SQLite crée une transaction pour chaque insertion. –
pourquoi vous avez utilisé 3 ExecuteNonQuery où l'on peut faire le travail –
3 'ExecuteNonQuery's parce que 1 pour le' BEGIN', 1 (ou plus) pour chaque 'INSERT' et 1 pour' END'.Sauf si vous avez ajouté toutes vos instructions SQL à une chaîne (délimitée par des points-virgules), vous avez besoin de plusieurs appels 'ExecuteNonQuery'. – tidwall