SQLite или SQL Server Compact для проекта .NET

5

Мне нужна простая встроенная база данных для относительно небольшого размера базы данных (< 100 МБ, но в большинстве случаев < 20 МБ) и максимум 1-2 одновременных пользователей/соединений в среднем. Он должен иметь возможность защищать/шифровать данные с помощью логина.

Какая база данных лучше всего подходит для работы?

Теги:
database

4 ответа

7
Лучший ответ

SQLite

Pros
- Поддержка базы данных в памяти
- Хорошая производительность
- Реальная установка XCopy (или реальное внедрение)
- Открытый исходный код и независимая платформа

- имеет С# портирование → http://code.google.com/p/csharp-sqlite/

против
- C API (низкая производительность)
- Плохая поддержка SQL
- Может быть очень сложно с большим набором данных
- Нет прямой поддержки шифрования данных (расширения доступны)

SQL CE

Pros
- Хороший анализатор запросов (обычные запросы могут использоваться совместно с SQL Server)
- Много информации, хорошая документация (короткое время обучения)
- Поддержка OLE DB (C/С++) и ADO.NET
- Встроенная поддержка шифрования данных
- Поддержка репликации SQL (действительно классная функция)

против
- Нет установки XCopy (может мешать другой установке)
- Ну.. что все?

Для вашего сценария, безусловно, SQL CE, не так ли?

  • 0
    Насколько сложна установка? Разве это не просто копирование DLL; вот о чем я думаю, когда читаю «встроенный».
  • 1
    Относительно SQLite: есть поставщик ADO.NET, который мог бы сделать это довольно просто или нет (у вас пока нет опыта работы с ним)? Ссылка: sqlite.phxsoftware.com .
Показать ещё 6 комментариев
1

Шифрование в SQLite не является бесплатным.

Но его очень легко внедрить с его неинвазивным размером и простой установкой копирования файлов.

Поставщик SQLite для .NET является надежным (по крайней мере, в однопользовательском режиме - я никогда не создавал приложение с несколькими параллельными сценариями с использованием SQLite и, вероятно, никогда этого не делал, потому что SQLite использует схему блокировки файлов, схема блокировки и все мои приложения, как правило, имеют только одного пользователя или многих пользователей. Поэтому вам придется тратить время на обработку concurrency проблем.

Кроме того, SQLite имеет неплохую поддержку SQL и хорошо справляется с большими наборами данных.

Таким образом, вам нужно назначить приоритетный вес каждому из ваших требований. Насколько важна легкость установки? Насколько важен concurrency? Насколько важно шифрование?

  • 0
    На « sqlite.phxsoftware.com » я читал, что они поддерживают шифрование; или я пропускаю некоторую информацию?
  • 0
    @ Марк V: трудно сказать из краткой аннотации "вся база данных может быть зашифрована". Я знаю, что у SQLite есть (платная) версия с поддержкой шифрования, но я никогда не использовал ее и не изучал подход шифрования .NET-провайдера. Я не знаю, как это работает или насколько хорошо он работает с параллельными авторами и большими наборами данных.
0

Они оба отличные ИМО. Но, когда это возможно, я стараюсь придерживаться материала MS при работе в .NET. Это предполагает, что бюджет на месте, чтобы сделать это... но так как вы смотрите на SQL Server CE и Sqlite, они оба свободны. Оба будут поддерживать EF, но я бы предположил, что Sql Server CE будет иметь лучшую поддержку в большинстве областей.

Кроме того, рассмотрели ли вы просмотр db4o для встроенного решения? Довольно приятное решение NoSQL... и оно также бесплатное.

  • 0
    Правильная точка Пойдите с вещами MS, когда в .NET. Также вы сможете при необходимости масштабировать его до SQL-сервера. Но тогда SQLLite имеет открытый исходный код, преимущество перед оплатой лицензионного сбора за SQL CE.
  • 1
    @Munish Goyal: Разве SQL CE не бесплатен?
Показать ещё 1 комментарий
0

Они должны одинаково хорошо обрабатывать задание.

Если вы знакомы с разработкой SQL Server, SQL Server Compact Edition, вероятно, даст вам наименьшее количество головных болей. Поставщик, запросы и строка подключения будут знакомы.

  • 0
    Я достаточно хорошо знаю SQL Server (много сделал с ним), но не боюсь использовать что-то еще. Единственное, что имеет значение, это какой из них является лучшим (самый легкий, самый быстрый, безопасный ...).
  • 0
    @Marc V - Я хочу сказать, что если вы знаете SQL Server CE, это лучший выбор. У вас будет меньше проблем, вы напишете лучший код и в итоге получите лучший продукт. Ваши пользователи не заметят разницы между ними.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню