2010-03-22 3 views
1

У меня довольно медленный поиск данных из базы данных sqlite на моем iPhone и, возможно, у кого-то есть альтернативная идея, чтобы объяснить это. От того, что я отслеживал до сих пор, sqlite3_step(statement) иногда необычайно медленный. При получении, например, 50 строк из базы данных для выполнения этого шага обычно занимают несколько миллисекунд, но иногда это занимает несколько секунд.Медленный доступ SQLite на iPhone

Моя база данных не маленькая (80 МБ), и моя теория заключается в том, что причиной является пейджинг. Но может ли кто-то другой подумать о другой причине?

+0

Если вы уверены, что выполнение инструкции с использованием этой функции приводит к вашей проблеме с производительностью, вы также можете опубликовать оператор SQL, который вы выполняете, вместе со схемой таблиц, которые использует оператор. –

ответ

2

У вас есть правильный указатель на этом столе? Запросы могут быть очень медленными, если для выполнения запроса требуется полное сканирование таблицы. См. this page, например, для некоторых рекомендаций по оптимизации запросов SQLite.

Возможно, вам просто нужно добавить индекс в таблицу. Не забудьте повторно проиндексировать таблицу после добавления индекса (вам понадобится инструмент, есть бесплатное дополнение для Firefox, которое называется «SQLite Manager», что делает для этого довольно приличную работу)

+0

Действительно, страница utk - хорошая. Но теперь я получаю лучшие результаты (даже жертвуя индексами), уплотняя мой db, хотя у меня все еще есть ощущение, что это страница в и из данных в фоновом режиме. – georgij

Смежные вопросы