Gary Doades wrote: > Jian Lin wrote: >> ok, the following code with 6000 records insert will take 13.3 seconds >> to finish (just for the db portion). if i change 6000 to 30000 then it >> will take 67 seconds. >> > > OK, I created the table and the index and ran your code for 30000 > records, but I wrapped the database part in a Benchmark.measure{} > > Using MySQL: > > For 30000 inserts with no indexes: > > "Starting inserting records" > 31.996000 0.639000 32.635000 ( 35.356000) > 30000 > > For 30000 inserts with all indexes: > > "Starting inserting records" > 32.795000 0.982000 33.777000 ( 37.103000) > 30000 > > That's 33 seconds of CPU time with 37 seconds elapsed on a quad core 2.4 > GHz with a Seagate Barracuda SATA drive with 32MB cache. > > As you can see, it's pretty much all in CPU time!!!! > > > The result was essentially the same in Postgres and MS SQL server! > > So you can forget about the database itself. None of the database > engines were unduly taxed by the test. > > Just for fun I changed the program to output the data as SQL INSERT > statements and then run that (with 30000 inserts wrapped in a > transaction) against MySQL. > > Imported in 1.2 seconds!! > > I Don't know if it is the hash lookup code or ActiveRecord that is > gobbling up the time, but it certainly isn't the database. > > You'll need to tinker with, or better profile your code to find out what > is sucking up the time.
yeah that's what i was going to say... the line Phrase.transaction do didn't cause any "transaction" statement to show up in the development.log so is it suppose to have begin a transaction? so the 1.2 second result you have, is by collecting all those INSERT statements and then wrap them in a begin transaction and commit and it is 1.2 seconds... I wonder then, can't this be achieved in ActiveRecord? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---