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