Вопросы | sqlite

Оптимизация Sqlite: сценарий только для чтения

Вопрос

NeboWiki | 2129 просмотров | рейтинг: 2

Я использую SQLite для ряда приложений на рабочем столе и КПК. Большинство операций доступны только для чтения, поскольку SQLite функционирует как хранилище данных для справочного материала в моих приложениях. В основном, я ищу предложения по улучшению производительности в сценарии, где вы знаете, что доступ к данным только для чтения. Может быть, через различные настройки прагмы? и т.д... Производительность SQLite превосходна, однако на КПК, когда у вас несколько баз данных, я вижу небольшое снижение производительности. Я не думаю, что это проблема с SQLite, просто реальность скорости КПК. Однако, сказав это, возможно, есть способы улучшить это. Хороший совет и хорошо поставленный. Я надеюсь на что-то более конкретное, чтобы рассказать двигателю о том, что я делаю. Например, если сообщить движку, что в БД не будет многократных записей, или каким-либо образом изменить обработку кэша. Тем не менее, я рад, что вы обратили внимание на аспект дизайна базы данных как ведущую проблему.

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

Quibblesome

Вы пытались отменить нормализацию данных?




Ответы

Ned Batchelder

+ 2 -
Стандартные советы по производительности базы данных все еще применяются: Убедитесь, что ваши запросы используют индексы, а не полное сканирование таблицы Будьте максимально избирательны в своих запросах, чтобы вы не извлекали ненужные строки из БД Выберите только те столбцы, которые вы хотите  


Louis Gerbarg

+ -1 -
Вы можете вызвать sqlite3_open_v2 () с флагом SQLITE_OPEN_READONLY. Я понятия не имею, действительно ли sqlite3 использует это для оптимизации своего поведения или просто для установки соответствующих разрешений на открытый вызов, который он делает для ОС.  


Anonymous

+ 2 -
sqlite3_open_v2 () с флагом SQLITE_OPEN_READONLY изменяет способ, которым SQLite обрабатывает оппортунистические блокировки, без реальных преимуществ в производительности. Вы можете использовать прагму cache_size, если вы выполняете много операций чтения или, в зависимости от размера БД, создаете копию БД в памяти, используя опцию: memory open.


Теги

sqlite | windows-mobile | compact-framework