(с использованием Delphi 2010 + последняя SQLite в режиме WAL)SQLite альтернативы с одновременной записью (Delphi)
Я использую DISQLite (Delphi порт SQLite) с моим многопоточным приложением клиента (все же быть освобожден, так что я могу изменить двигатель DB, если я действительно должны)
Мой профайлер ясно говорит, что это глупое решение, я разыскал это до 2-3 очень простых операторов SQL, что летит, когда выполняется в одно- но из-за блокировки/ожидания потоков (SQLite действительно плохо работает с несколькими потоками, пытающимися писать одновременно)
Я сделал все возможное, чтобы оптимизировать свой код/избежать узких мест, но после нескольких недель напряженной работы, я думаю теперь, если это не просто легче сбросить SQLite & выбрать другой DB двигатель (?)
Моих требований являются:
- ACID
- Очень хорошо одновременное чтение/запись (уровень записи) поддержка
- (Очень) Быстрый & стабильный DB двигатель
- B-Tree
- Delphi поддержка 2010
Я только с использованием основных операций INSERT/UPDATE/DELETE команды с индексами, ничего не фантазии. Таким образом, мои требования к SQL являются относительно базовыми (мне не нужны соединения или другие «более продвинутые» SQL-данные).
Я также открыт для решений NQL, если он поддерживает указанные выше требования.
Мое исследование приводит к DB Berkley, которое, если я правильно понял, модифицированную версию SQLite с поддержкой параллельной записи, но проблема заключается не в том, что это не для delphi.
Я также читал о Киотском кабинете, но опять же, не Дельфы поддержки :(
Любое предложение будет более чем приветствуется,
Благодаря
Я не уверен в привязках к Delphi, но вы можете взглянуть на http://en.wikipedia.org/wiki/Berkeley_DB (имеет привязки для большинства остальных) –
@JoachimIsaksson: Спасибо, да, я посмотрел в BDB в Википедии я нашел это: http://www.demonak.com/delphi/berkeleydb.en.shtml и «AnyDAC для поддержки DB Delphi Berkeley», но я не уверен, что это то, что я хочу (не упомянуть о стоимости лицензии ... :() – TheDude
Я использую его для использования с открытым исходным кодом, и я не видел в вашем вопросе, что вы указали открытый исходный код или нет, но да, я определенно мог бы видеть, что затраты на лицензирование Oracle являются проблемой. для open source в той же ситуации, хотя :) –