don't forget your using On Mon, Aug 6, 2012 at 3:50 AM, Sayed Arian Kooshesh <koosh...@gmail.com>wrote:
> http://www.sqlite.org/lang_transaction.html > > On Mon, Aug 6, 2012 at 3:47 AM, John Murray <j...@murray.gb.com> wrote: > >> Whoa – brilliant Miha – you have inadvertently given me the answer**** >> >> Instead of just putting in **** >> >> connection.BeginTransaction(); **** >> >> I need to create a var to hold the instance and then use that instance to >> commit after the loop thus**** >> >> Var thisinstance = >> connection.BeginTransaction(); **** >> >> for (int go = 0; go < selstr2.Count; go++)**** >> >> {**** >> >> //cc2 is the connection.command**** >> >> cc2.CommandText = selstr2[go]; //array selstr >> contains insert statements**** >> >> cc2.ExecuteNonQuery();**** >> >> }**** >> >> thisinstance.Commit();**** >> >> ** ** >> >> ** ** >> >> This delivers a significant speed improvement over the previous where it >> was committing each round of the loop. I had tried all flavours of commit >> until you mentioned that the begintransation() instance had a commit >> method **** >> >> The above works beautifully**** >> >> Thanks **** >> >> John Murray **** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> *From:* Miha Markic [mailto:m...@rthand.com] >> *Sent:* 05 August 2012 14:01 >> *To:* j...@murray.gb.com; Discussions related to Mono for Android >> *Subject:* RE: [mono-android] sqlite optimisation**** >> >> ** ** >> >> Hi John,**** >> >> ** ** >> >> BeginTransaction() returns you a SqliteTransaction instance which has >> both Commit() and Rollback() methods.**** >> >> However, I doubt that transaction will speed up inserts. Instead, you >> might take a look at UpdateBatchSize property of the DbDataAdapter class. >> **** >> >> http://msdn.microsoft.com/en-us/library/aadf8fk2.aspx**** >> >> I suppose it works as well in M4A.**** >> >> ** ** >> >> HTH,**** >> >> Miha**** >> >> ** ** >> >> *From:* monodroid-boun...@lists.ximian.com [ >> mailto:monodroid-boun...@lists.ximian.com<monodroid-boun...@lists.ximian.com>] >> *On Behalf Of *John Murray >> *Sent:* Sunday, August 05, 2012 1:13 PM >> *To:* monodroid@lists.ximian.com >> *Subject:* [mono-android] sqlite optimisation**** >> >> ** ** >> >> I am using sqlite in monodroid – I am doing a bulk insert from an >> external source**** >> >> I have read there is no inbuilt way of importing a whole xml file into >> the sqlite database**** >> >> But one can optimise a loop which inserts line by line by using >> connection.BeginTransation()**** >> >> Which is supposed to delay the commit until the loop is over then use >> setTransationSuccessful()**** >> >> However in the monodroid library mono.data.sqlite.dll does not seem to >> contain the ‘setTransactionSuccessful’ method**** >> >> Nor themethod endTransation())**** >> >> Given the insert loop below can anyone tell me if I am barking up the >> wrong tree trying to stall the committing of inserts in this way? Is there >> any other way to speed up a large insert loop like this?**** >> >> If there is a method in Mono.Data.Sqlite for ‘begintransaction()’ where >> is the obverse ‘endtransation’ or ‘settransationsuccessful()’**** >> >> As you can see from code below I have also tried various forms of commit. >> **** >> >> //==================================**** >> >> // connection.BeginTransaction(); **** >> >> // connection is a straightforward sqlite connection the above code line >> is available in monodroid**** >> >> // however without some commit or endtransation nothing gets written to >> the database**** >> >> for (int go = 0; go < selstr2.Count; go++)**** >> >> {**** >> >> ** ** >> >> //cc2 is the connection.command**** >> >> cc2.CommandText = selstr2[go]; //array selstr >> contains insert statements**** >> >> cc2.ExecuteNonQuery();**** >> >> }**** >> >> //connection.setTransationSuccessful();**** >> >> //cc2.Transaction.Commit();**** >> >> connection.Close();**** >> >> //===========================================**** >> >> ** ** >> >> I’d be grateful for any help at all – **** >> >> John Murray**** >> >> ** ** >> >> ** ** >> >> ** ** >> >> _______________________________________________ >> Monodroid mailing list >> Monodroid@lists.ximian.com >> >> UNSUBSCRIBE INFORMATION: >> http://lists.ximian.com/mailman/listinfo/monodroid >> >> > > > -- > Extreme Knowledge is not something for which he programs a computer but > for which his computer is programming him. > > -Wozniak > -- Extreme Knowledge is not something for which he programs a computer but for which his computer is programming him. -Wozniak
_______________________________________________ Monodroid mailing list Monodroid@lists.ximian.com UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid