I think the best answer is that the performance of ORMLite is highly dependent on how you use it. If you can post some sample code, as well as some performance numbers, we can help more specifically.
If you perform multiple database operations at a time, you should use the Dao.callBatchTasks() method. In Android, it starts a database transaction, calls the one transferred to Callable and after it returns, it completes the transaction. This is significantly faster if, for example, you insert several rows into a table.
See also: Why is the DAO method so slow in ORMLite?
EDIT
If your queries are busy for a while, then most likely time is wasted on SQLite. You can try to reduce the portion of the data set or adjust the number of comparisons to make sure everything works faster, so you can finally determine that the culprit is SQLite (and most likely only IO).
source share