Thanks guys! You rock!
Transactions did the trick.

@Mark I'll check out that presentation you mentioned.

I guess I discounted the flash write as being the bottleneck, because
even at a slow 1.5Mbps write speed I expected better performance
(<5-10ms) for writing a few hundred bytes.

On Sep 11, 4:14 am, Mark Murphy <[email protected]> wrote:
> On Fri, Sep 10, 2010 at 10:11 PM, Sheado <[email protected]> wrote:
> > The issue:
> > SQLiteDatabase.update(...) takes anywhere from 30ms to 700ms on a
> > simple update (on a Motorola Droid). I'm not sure why there's such a
> > huge range in the timing, but despite that it still means that in the
> > best case updating one column in 30 rows will take at least one second
> > - in the best case! On average updating 30-40 rows is taking me 3-4
> > seconds - this is crazy slow - like 1985 computer slow!
>
> No, it's like flash slow. Please watch Brad Fitzpatrick's "Writing
> Zippy Android Apps" presentation from the 2010 Google I|O conference.
> He covers this very point.
>
> > I've tried:
> > * update(...) with ContentValues
> > * update with execSql()
> > * add/removing indices on the columns in question
>
> None of those should have any effect. You're assuming the problem is
> with the CPU. It's not. It is with the flash writes. You need to cut
> down on the number of flash writes.
>
> > Is there anything else I can try to improve performance? For example,
> > is there any way to update multiple rows with one statement?
>
> As the others on this thread pointed out, use transactions. That will
> turn ~30 individual transactions (each with its own set of flash
> write) into one.
>
> --
> Mark Murphy (a Commons 
> Guy)http://commonsware.com|http://github.com/commonsguyhttp://commonsware.com/blog|http://twitter.com/commonsguy
>
> _The Busy Coder's Guide to *Advanced* Android Development_ Version 1.9
> Available!

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to