Hello everyone,
we have developed a iOS Application for offline usage, which connects with the Sybase Unwired Platform 2.1. It is a sales application and we have to load some amounts of data(customers, materials, stock amounts) into the device. In this case the Application loads aprox 34.000 Items(inventory stock amounts ) from the SUP.
On the device we select the data from the UDB (UltraLite DB), using a MBO object queries, but we got some performance problems here.
First, we tried to use a Object-Query, but we got no results because there is too much load for the device. Instead we used a select statement with IN clause each 500 records. This works but:
The first issue is, if we use more than 500 records in a select statement we got an technical exception.
Ok that would be not a big problem, if the select would be according fast. But unfortunatly it's not. One select for loading 500 records from a table with 34.000 items in it, takes roundabout 5 seconds. Selecting all 34.000 records this way will take over 6 minutes, just for collecting this items from the device DB. This time values was taken from the IOS Simulator, on the device its even slower. Although we have set indices on the corresponding query columns.
We are very confused about the fact selecting some records from the UltraLite DB takes so much time. Even this is much longer as the corresponding sync time loading the data from the SUP into the device.
It seems that index mechanism in UDB didn't work correctly....
Is anybody out there who may have similar experiences? And what can we do do to get a better performance for our querys?
Thank you very much for your help,
Ingo Schneider