Hi, my task is to parse a lot of files and then insert them to sqlite database. it could be thousands of files. i use c#.
im starting a transaction then make a lot of inserts and commit. ive got about 30 inserts per second but after a while it is dropping to about 1-2 inserts per second. it takse about ~500 inserts to drop to this 1-2 insert per sec. ive got indexes on this database - but this dosnt make difference as i checked on copy without indexes. 1) why it is getting tired ans slows down? how to fix it? o tried to this in a loop with 100 inserts to keep speed reasonable. then closing database and reopening. after close and reopen next commit gets SQLITE_BUSY/* The database file is locked */ 2) wtf? please help me im stucked code is like: //done by background worker void import(object sender, DoWorkEventArgs e) { DataTable tab; tab = PST_POSTGRES.Postgres.Query(textBox6.Text, textBox1.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox2.Text); SQLiteWrapper.SQLite db = new SQLiteWrapper.SQLite(); db.OpenDatabase(sqlite_db); db.BeginTransaction(); foreach (DataRow r in tab.Rows) { if (bw.CancellationPending == true) { e.Cancel = true; break; } //import here foreach (object o in imported) { doinserts(o) } //here is an reopen condition - when gets slower if ((((long)(imported * 1000)) / stoper.ElapsedMilliseconds) < next) { db.CommitTransaction(); db.CloseDatabase(); db = new SQLiteWrapper.SQLite(); db.OpenDatabase(sqlite_db); db.begintransaction(); } next = (((long)(imported * 1000)) / stoper.ElapsedMilliseconds); } db.CommitTransaction(); db.CloseDatabase(); stoper.Stop(); } -- View this message in context: http://old.nabble.com/inserts%2C-performance%2C-file-lock...-tp32814772p32814772.html Sent from the SQLite mailing list archive at Nabble.com. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users