#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. Попробовал ваш подход к воссозданию базы данных и ее уплотнению. Но это не имело никакого значения.