Встроенная база данных с быстрой записью нескольких записей - PullRequest
1 голос
/ 08 апреля 2011

Я создаю приложение C # WPF, которое получает данные RS232 и сохраняет все данные во встроенной базе данных с относительно высокой скоростью (сотни в секунду).Приложение выполняет две вещи одновременно:

  1. принимает данные RS232 и сохраняет их в базе данных
  2. выводит данные из базы данных.

Я рассматриваю SQLite, потому что моему приложению требовалась встроенная база данных, и это однопользовательское приложение.Но хранение и отображение данных (это может быть хранение текущих данных и нанесение данных вчерашнего дня) требует одновременного чтения и записи в базу данных.Я слышал, что SQLite блокируется для одного запроса и не может обрабатывать несколько запросов одновременно.Это правда?Если да, то какая другая встроенная база данных поддерживает множественные записи?

Ответы [ 3 ]

3 голосов
/ 08 апреля 2011

Berkeley DB имеет неблокирующую запись и имеет репутацию быстрой.

Очень интересно, это может быть использовано как замена SQLite .

приложений, написанных на SQLite API версии 3 может переключиться на использование Oracle Berkeley DB без кода изменения, путем повторной ссылки на Беркли Д.Б. Библиотека SQLite. Поведение двух приложений на уровне приложения продукты идентичны, но расширенные возможности Беркли DB улучшать приложения SQLite производительность, параллелизм, масштабируемость, и надежность.

Звучит так, как будто бы это вполне соответствовало требованиям.

2 голосов
/ 08 апреля 2011

Хорошо, несколько вещей.

Во-первых, да, SQLite потокобезопасен, хотя автор не в восторге от этого. Читайте об этом здесь: http://www.sqlite.org/faq.html#q6.

Во-вторых, вы упомянули "быстрый" как сотни вставок в секунду. SQLite может легко достичь 30 000 операций вставки в секунду, если вы заключите все в транзакцию. Я говорю это не потому, что это был действительно ваш вопрос, а скорее потому, что знание этого может помочь вашему решению (поскольку оно переопределяет то, что считается «быстрым»).

0 голосов
/ 08 апреля 2011

Проверьте RavenDB. http://www.ravendb.net/ Было бы довольно легко выполнить некоторые тесты с ним и посмотреть, будет ли он соответствовать вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...