2012-03-07 10 views
0

私はPRAGMA user_version 5のsqliteデータベースを使用しているアプリを持っています。アンドロイドデバイスのsqliteデータベース

これでは、私はいくつかのデータを追加し、いくつかのデータを期間の日数で削除している3つのテーブルを持っています。 sqlite dbからのデータの追加と削除は、スプラッシュ画面の直後に行われます。

問題は、次のようにさまざまなバージョンの3つの異なるアンドロイドデバイスで同じビルドをテストしたときです。アプリがロードされる。この3つのデバイスで

1. Motorola(2.1) - more than a year old 
2. SamsungAce(2.3) - buyed 8 mnths before 
3. Xperia(2.3) - new device. 

は、単独で、2.1でそれがsqliteのDBからデータを追加または削除するには非常に長い時間(時間以上)を要します。他の2台のデバイスでは、ロードに2〜5分かかります。

なぜアプリは2.1バージョンで遅くなるのですか?これが原因バージョンであるか、デバイスが非常に古い

Plsはなっているようにすることは私にこの疑問を解明...私がお勧めすることができ

+0

からデータを取得しているソースを好きに重要払っていないがあります –

+0

私.. actuall問題が何であるかを確認するためにいくつかのコードを投稿してください2.3バージョンのデバイス(1つは古く、もう1つは新しいものです)に適しているため、コードに問題があると感じません。しかし、古いデバイスの2.1になると遅くなります... –

+0

@SivaK 2-5分は、データがdb *に保存されていない限り、本当に長い時間IMHOですが、私はそれを "うまく動作している"と呼んでいるとは確信していません。 – Joe

答えて

1

、彼らはsqlite3の異なるバージョンの使用しているため、2.1および2.2/2.3の間で速度の異なる結果になりますが存在すべきである - 2.1用途を... 3.5.9と2.2 & 2.3用途3.6.22をslite 、それは変更ありません高速版(上位版は必ずしも高速ではありませんが、クエリに依存して論争の対象となります)でも、2つのバージョンの速度テスト比較は見つかりませんでした。そのははっきりそれが数秒後、より多くを取るべきではない別の(開く/ストリーミング)ソースから読み取る既知のデータを挿入した場合

しかし...

2000のインサートは...何もありません..あなたがしようとすることができ テストのためにコードを削除し、LOOP 2000の挿入を試し、タイミングをテストしてみてください。

、あなたは私達にあなたのコードを表示することができれば、多分何か他のものあなたは、あなたが...

2

ことの一つは、トランザクションを使用することです。その見た目では、データベース上で複数のクエリを実行しており、それらのクエリがトランザクション内にあった場合、SQLiteはより良いパフォーマンスを発揮します。

膨大な量のデータを追加または削除しない限り、Siva Kのコメントは長くても2〜5分かかるようです。

トランザクションがコードを投稿するのに役立たない場合、2〜5分でさえ長いようです。ユーザーがデータを追加/削除/更新するたびに2〜5分待つ必要がある場合。良い経験を提供するつもりはありません。

関連する問題