sqlite db в устройствах андроид - PullRequest
0 голосов
/ 07 марта 2012

У меня есть приложение, в котором я использую sqlite db PRAGMA user_version 5.

В этом у меня есть три таблицы, в которые я добавляю некоторые данные и удаляю некоторые данные за интервал дней.Добавление данных и удаление данных из sqlite db происходит сразу после заставки.

Теперь проблема в том, когда я тестировал одну и ту же сборку на трех разных устройствах Android разных версий следующим образом.

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 занимает очень много времени (более часа).На двух других устройствах загрузка занимает всего 2–5 минут.

Почему приложение замедляется в версии 2.1.Это из-за версии или как устройство стало очень старым

Просьба прояснить мне это сомнение ...

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Одна вещь, которую я могу предложить, это использовать транзакции. Судя по всему, вы выполняете несколько запросов к базе данных, и SQLite будет работать намного лучше, если бы эти запросы были в транзакции.

Примите во внимание комментарий от Siva K, даже если 2-5 минут кажутся длинными, если вы не добавляете и не удаляете огромные объемы данных.

Если транзакции не помогают опубликовать ваш код, так как даже 2-5 минут кажутся длинными. Если пользователь должен ждать 2-5 минут на каждой информации, добавьте / удалите / обновите приложение. не собирается доставлять хороший опыт.

1 голос
/ 08 марта 2012

Должны быть и будут разные результаты по скорости между 2.1 и 2.2 / 2.3, потому что они используют другую версию sqlite3 - 2.1 использует slite 3.5.9 и 2.2 & 2.3 использует 3.6.22. и это меняет скорость (более высокие версии не всегда быстрее .. это зависит от запроса и открытости для противоречий), хотя я не смог найти сравнение теста скорости между двумя версиями.

Но ..

2000 вставок - ничто. Если его обычная вставка с известными данными, считанными из другого (открытого / потокового) источника, не должна занять более пары секунд. Вы можете попытаться удалить свой код для тестирования, и просто попробовать вставки FOR LOOP 2000 и проверить время.

и если вы можете показать нам свой код, может быть, есть что-то еще, что вы не платите, чтобы понравиться источник, из которого вы получаете данные ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...