System.Data.Sqlite: Cache Size = ... параметр строки соединений не работает - PullRequest
0 голосов
/ 18 мая 2011

Я сравниваю скорости дисковых и оперативных баз данных.Я пытаюсь вставить приблизительно 8 МБ данных в базу данных sqlite3 со следующей строкой подключения:

<configuration>
    <connectionStrings>
      <add name="Server" connectionString="Data Source=db.db3;Version=3;" providerName="System.Data.SQLite" />
   </connectionStrings>
</configuration>

Она вставляет мои данные примерно через 4 секунды.

Когда я меняю соединениестрока к следующему:

<configuration>
    <connectionStrings>
      <add name="Server" connectionString="Data Source=:memory:;Version=3;" providerName="System.Data.SQLite" />
   </connectionStrings>
</configuration>

Мои данные вставляются примерно через 0,5 секунды.

Но когда я изменяю настройки следующим образом (примечание Cache Size=16777216)

<configuration>
    <connectionStrings>
      <add name="Server" connectionString="Data Source=db.db3;Version=3;Cache Size=16777216;" providerName="System.Data.SQLite" />
   </connectionStrings>
</configuration>

Это снова 4 секунды, и результат не зависит от объема кэша.В моем понимании размер кэша в два раза больше объема данных должен приводить к тому, что мои данные помещаются в память.А миграция диска должна происходить, когда кеша больше не осталось ...

Как сделать sqlite более отзывчивым?

Ответы [ 2 ]

3 голосов
/ 11 октября 2012

Это медленнее, потому что: память означает базу данных в памяти, диск всегда будет медленнее.Возможно, вам удастся немного ускорить процесс, добавив вставки в транзакцию, так как она будет сброшена на диск только один раз в конце транзакции.Включение журнала транзакций также поможет, но сделает его более подверженным проблемам из-за сбоев и потери питания.

Маловероятно, что кеш ускорит что-либо, потому что вы не используете одну и ту же страницу данных более одного раза.

1 голос
/ 18 мая 2011

В соответствии с SQL Lite Documentation настройка размера кэша является только рекомендацией.«Соблюдается ли это предложение на усмотрение Кэша страницы, определенного приложением »

...