sqlite на iOS 4.3.x намного медленнее, чем 4.2.1

#iphone #sqlite #ios-4.2 #ios4

#iPhone #sqlite #ios-4.2 #ios4

Вопрос:

Почему sqlite на iOS 4.3.x намного медленнее, чем 4.2.1. Тот же запрос sqlite (выберите запрос с 3 объединениями) дает результаты намного быстрее на 4.2.1, чем 4.3.x.

Есть ли какая-то особая причина для того же? Или это ошибка на стороне Apple?

Заранее спасибо.

Комментарии:

1. это на устройстве или симуляторе? У меня были некоторые проблемы с sqlite в симуляторе, которые не вызывали проблем на устройстве.

2. Проблема в устройстве. Я протестировал его на нескольких устройствах.

3. Может ли быть узкое место в другом месте? Когда вы запускаете инструмент профилирования времени в своем приложении, что доминирует над временем выборки? Если это действительно SQLite, вы можете захотеть отправить отчет об ошибке для регрессии: bugreport.apple.com .

4. Версия sqlite такая же? Как вы проводите сравнительный анализ этого? Насколько это быстрее / медленнее?

Ответ №1:

Это тот же файл базы данных? Возможно, вы захотите снова сжать базу данных. Я не разработчик iphone, но если они изменили файловую систему с 4.2.x на 4.3.x, могут возникнуть некоторые проблемы с доступом к деревьям из старого файла. sqlite предоставляет запросы (посмотрите VACUUM в документах), которые уплотняют и очищают базу данных. В качестве последнего средства вы также можете попробовать перестроить всю базу данных (т. Е. ВЫБРАТЬ * из [каждой таблицы по очереди]; ВСТАВИТЬ [каждую строку] В [newdb].[таблица])

Надеюсь, это поможет!

Комментарии:

1. Да, это тот же файл базы данных. Я попытался установить приложение заново, но без положительных результатов.

2. Попробовал ваш подход к воссозданию базы данных и ее уплотнению. Но это не имело никакого значения.