I'm wondering what would cause an ultralite database to grow consistently. For instance, if we had a table that we were synchronizing with and the on the select on the server requested the same 2000 rows each time, would that cause the UDB to grow? Let's say you had a simple punch clock application and part of the client functionality was to allow them to see their timesheets for the prior 30 days. If you were to set up a download cursor that simply selected all their punches for the 30 day period without checking to see if they needed to go down, would that cause the UDB to grow? If you downloaded the exact same 2000 rows each time but nothing was changing in the rows being downloaded, would that grow the UDB? We are seeing our UDB grow by 200K on synchronizations of the exact same data. All I can think of that would cause this is that it is because we bring down the same rows every time and the ultalite DB does some sort of delete and insert of the same rows causing it to grow? Has anyone seen this sort of behavior out of Ultralite?
asked 25 Oct '12, 15:29
Since you said UDB I will assume that this is an Android question.
Although for the first couple of synchronizations I would expect the database to grow so it had working room but after that I would expect it to stabilize. The first sync would insert the rows, the second sync would insert all the rows again and delete the old ones (i.e. update), but after that the space of the old rows would be reused. There may be some slight subsequent growth if the rows vary in length considerably (minor fragmentation) but I would expect it to stabilize over time.
How many syncs did you do (more than 3?)?
Do you have any default timestamp or autoincrement columns? Any triggers?
Posting the schema and MobiLink cursors for the table in question would help.
answered 25 Oct '12, 15:43