Perhaps it could be an option to divide your data into a logical groups? For instance we have a large study, where we divided the data into geographical regions and setup a sync endpoint for each.
Also, I have found it beneficial to add indices to the sqlite database directly on the device. But that would probably only be feasible for smaller datasets…