2011-08-26 11 views
1

私はAndroid向けのアプリケーションを開発していますが、ORMLiteを使用しようとしましたが、パフォーマンスは非常に悪いようです。他の誰かがこれを経験しましたか?AndroidでORMLiteのパフォーマンスが低下していますか?

または何か間違っていますか?

EDIT

はありません私は、任意の加入やっていないよ、とすべてのクエリがパラメータとしてインデックス付きのキーで作られています。しかし、データセットは大きく公理的に大きく、多くの比較があります。

は、私は最高の答えはORMLiteのパフォーマンスは、あなたがそれを使用する方法に大きく依存しているということだと思い...純粋のSQLiteをどうする

+2

パフォーマンスの低いコードやデータを投稿するのに役立ちます。聞くべき質問:参加はありますか?結合フィールドは索引付けされていますか?たくさんの列がマップされていますか?本当に大きなデータセットですか? SQLiteと同じパフォーマンスの問題をあなた自身が作成していますか?どのようなSQLは、実際にはパフォーマンスの低いクエリのためにSQLiteによって生成されていますか? –

答えて

11

を試していません。コードサンプルの一部とパフォーマンス番号の一部を掲載できる場合は、より具体的にサポートできる可能性があります。

一度に多数のデータベース操作を行う場合は、Dao.callBatchTasks()メソッドの使用を検討する必要があります。 Androidでは、データベーストランザクションを開始し、Callableで渡されたものを呼び出し、それが返ってからトランザクションをコミットします。これは、たとえば、表に多数の行を挿入する場合には、はるかに高速です。

も参照してください:Why is the DAO method so slow in ORMLite?

EDIT

あなたのクエリはその後、最も可能性の高い時間はSQLiteのに費やされている時間がかかっている場合。データセットの一部を減らしたり、比較の回数を調整したりすることで、SQLite(というよりIOだけ)が原因であることを決定的に判断することができます。

+2

これに追加するには、大量のデータを持つ典型的なDBのツイークを考えてみましょう。これには、qureyの前にどのパーティションをチェックするかを選択するのに役立つように分類された異なるテーブルまたはデータベースにデータをパーティション化することが含まれます。 – Steven

関連する問題