我正在開發Android應用程序,並試圖使用ORMLite,但性能似乎非常差。有沒有其他人經歷過這個?ORMLite在Android上表現不佳?
或者我做錯了什麼?
編輯
不,我沒有做任何連接,並且所有的查詢與索引鍵作爲參數進行。但是數據集合非常大,並且有很多比較。
沒有嘗試過用純SQLite的做...
我正在開發Android應用程序,並試圖使用ORMLite,但性能似乎非常差。有沒有其他人經歷過這個?ORMLite在Android上表現不佳?
或者我做錯了什麼?
編輯
不,我沒有做任何連接,並且所有的查詢與索引鍵作爲參數進行。但是數據集合非常大,並且有很多比較。
沒有嘗試過用純SQLite的做...
我想最好的答案是,ORMLite的性能在很大程度上取決於你如何使用它。如果您可以發佈一些代碼示例以及一些性能數字,我們可能會更具體地提供幫助。
如果您一次進行多項數據庫操作,則應考慮使用Dao.callBatchTasks()
方法。在Android下,它啓動一個數據庫事務,調用傳入的Callable
,並在它返回後提交事務。例如,如果您在表格中插入多行,這將顯着加快。
參見:Why is the DAO method so slow in ORMLite?
編輯
如果你的查詢採取了一會兒,然後最有可能的時間被SQLite中度過的。您可以嘗試減少某些數據集或調整比較次數以查看事情是否運行得更快,以便明確確定SQLite(更可能只是IO)是罪魁禍首。
要添加到此,請考慮具有大量數據的典型DB鑷子。這些可以包括將數據分區到不同的表或數據庫中,這些數據庫被分類以幫助選擇在qurey之前檢查哪個分區。 – Steven
可能有助於發佈性能較差的代碼/數據。有些問題要問:有沒有加入?連接字段是否已編入索引?你有很多列被映射了嗎?一個非常大的數據集?你自己將自己的查詢寫成SQLite的時候是否會遇到同樣的性能問題? SQLite實際上爲您的性能不佳的查詢生成了什麼SQL? –