My app works by using a SQLite database that is generated on the user's PC and transferred to the device. It all works, but I had not anticipated the number of users who would have really huge amounts of data. In these cases, the UI is very sluggish as it waits for the data to be fetched.

I've tried a number of tricks that I was "sure" would speed things up, but nothing seems to have any noticeable effect. My queries are almost all very simple, being usually a single "col=val" for the WHERE clause, and INTEGER data in the column. So I can't do much with the queries.

The latest, and I am not an SQL expert by any means, was to use "CREATE INDEX" commands on the PC, believing that these indeces are used to speed up database searches. The indeces increased the size of the database file significantly, so I was then surprised that it seemed to have no effect whatsoever on the speed of my app! A screen that was taking 8 seconds to fill without indeces still takes about 8 seconds even with them. I was hoping to get things down to at least half that.

What I am wondering at this point is if the SQLite implementation on Android uses database indeces at all, or if I'm just wasting space by generating them. Can anyone answer this?

Also, any other things to try to speed up access?

(For what it's worth, on an absolute basis the users have nothing to complain about. My worst-case user so far has data that generates 630,000 records (15 tables), so there's only so much that's possible!)

    Doug Gordon
    GHCS Systems

--
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