Как создать встроенную базу данных для приложения WPF - PullRequest
1 голос
/ 06 апреля 2011

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

Пользователь этого приложения НЕ будет иметь сервер базы данных на своем компьютере. Могу ли я создать «встроенную» / «рабочую» базу данных (в зависимости от того, как она называется) с приложением WPF?

Я новичок в приложении базы данных, и мой вопрос:

  1. Можно ли развернуть приложение WPF с PostgreSQL, и пользователь сможет установить и по-прежнему использовать приложение без сервера SQL?

  2. Разве развертывание приложения, в котором у пользователя есть сервер SQL, будет иметь какое-либо отличие от развертывания приложения, в котором у пользователя нет сервера SQL?

Мне нужно что-то с высокой производительностью. У меня до 50 одновременных вставок, каждая из которых вставляет данные со скоростью 10 миллисекунд, и я храню тысячи данных в секундах в базе данных. Я не думаю, что SQLite или SQL Compact сделали бы эту работу. Мне нужно было встроить базу данных, хотя

Ответы [ 5 ]

1 голос
/ 01 октября 2016

Похоже, вам на самом деле не нужен SQL как таковой, поэтому взгляните на LevelDB и посмотрите, может ли хранилище ключей-значений соответствовать вашим потребностям.

LevelDB - это быстрая библиотека хранения значений ключей, написанная в Google, которая обеспечивает упорядоченное отображение строковых ключей в строковые значения.

Она написана на C ++ и очень быстрая:

Write Performance 
fillseq      :       1.765 micros/op;   62.7 MB/s
fillsync     :     268.409 micros/op;    0.4 MB/s (10000 ops)
fillrandom   :       2.460 micros/op;   45.0 MB/s
overwrite    :       2.380 micros/op;   46.5 MB/s
1 голос
/ 06 апреля 2011

Взгляните на SQL Server Compact Edition .

Поддержка опций установки ClickOnce, XCopy, MSI, CAB и без прав администратора

Редактировать * Как насчет Sql Server Express, проверкаthis out Встраивание SQL Server Express в пользовательские приложения

0 голосов
/ 19 сентября 2014

Пожалуйста, рассмотрите возможность использования VelocityDB, которая, по моим оценкам, является лучшим компромиссом между ценой и производительностью для встроенного решения БД.Это NoSQL-подход.Он поддерживает запросы Linq.ORM не нужен, просто нужно реализовать общий репозиторий для эмуляции EF-поведения.600000k записей вставлено в 8s 150ms для фильтрации 3k из этого подмножества.Быстро.

RavenDB немного быстрее, но его объем в мегабайтах на базу данных более чем в 3 раза больше, чем у VelocityDB.Также повышены TCO RavenDB.

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

Для этой цели я могу предложить вам использовать Firebird, который не имеет никакой разницы в работе с локальной или удаленной базой данных

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

Если пользователь пытается установить приложение и не имеет доступа к базе данных, содержащей настройки и данные текстового поля, приложение не будет работать. Вам также нужно, чтобы ваш установщик развернул базу данных. Я хотел бы посмотреть что-то вроде sqlite для установки вместе с вашим приложением.

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