Я использую временные таблицы в приложении для iPhone на базе SQLite. Производительность была не такой, как требовалось, поэтому я посмотрел на различных кандидатов на оптимизацию. Большинство из них работали хорошо и имели желаемый эффект. Однако я также хотел бы попробовать переместить временные таблицы из флэш-памяти в память , чтобы увидеть, есть ли улучшения.
На реальном устройстве я пытаюсь настроить это, используя:
PRAGMA temp_store = 2;
Это выполняется без ошибок. Однако, когда я запрашиваю конфигурацию, используя:
PRAGMA temp_store;
Результаты не возвращаются, поэтому я не могу проверить, действует ли эта конфигурация. Я могу прочитать другие настройки PRAGMA, такие как «page_size». Может кто-нибудь сказать мне:
- Если это ожидаемое поведение
- Если это неподдерживаемая конфигурация в SQLite на iPhone
- Если бы такая оптимизация была бы бессмысленной для iPhone, даже если бы это было возможно (возможно, из-за аппаратного обеспечения)
- Как я могу успешно переместить временное хранилище таблиц в память в этом сценарии
Примечание: Мне хорошо известны базовые данные в SDK 3.0, но у меня есть веские причины не использовать их.
Обновление: Джиттер указал, что экземпляр SQLite на iPhone может быть скомпилирован с SQLITE_TEMP_STORE , настроенным на постоянное использование временных файлов. Я не знал об этой настройке - есть ли способ подтвердить, что это так?