轻量级SQL数据库,无需安装。

35

你能推荐一个轻量级的SQL数据库,不需要在客户端计算机上安装即可工作,并且可以轻松地从.NET应用程序中访问吗?只需要基本的SQL功能。

现在我在简单的项目中使用Access数据库,并将.MDB和.EXE文件一起分发。正在寻找任何替代方案。

7个回答

27
取决于你对“轻量级”的定义。是指占用内存少?还是指数据库文件更小?或者是指连接数据库的连接器更轻巧?或者是指整体文件数量更少?我会给出我所了解的比较情况:
                    no of files    cumulative size of files    db size

Firebird 2.5             5                6.82 MB               250 KB

SqlServerCe 4            7                2.08 MB               64 KB

Sqlite 3.7.11.0          1                0.83 MB               15 KB

VistaDb 4.3.3.34         1                1.04 MB               48 KB

no of files - includes the .net connector and excludes the db file

这个数据库只有一个表,两列和两行。对于数据库的大小要保持一定的怀疑,因为随着进一步使用,数据库的增长可能会有所不同。例如,尽管SqlServerCe最初只有64 KB,但在添加了几百条记录后,它根本没有增长,而VistaDb则从48 KB轻松增长到72 KB再到140 KB。在这方面,SQLite是最好的,它从最低开始线性增长。
一些趣闻:我发现使用SqlServerCe的默认设置可以获得更好的性能,这意味着它是最容易启动且无需任何配置的,而我发现Firebird稍微难以启动,因为缺乏在线资料。据我所知,Firebird具有最广泛的标准SQL兼容性。而VistaDb是用完全托管的C#编写的,这意味着它可以与应用程序的程序集合并成一个单一文件,但在我看来速度最慢。综合考虑性能、易用性和大小,我选择了SQLite。SqlServerCe将是我的第二选择。
简而言之,每种数据库都有其优点和缺点。再次强调,请对我的抱怨持保留态度,这只是我的个人经验。

26

检查SQLite,它是一个实现自包含、无服务器、零配置、事务性SQL数据库引擎的软件库。

它有许多.NET包装器


4

今天尝试了一下,不幸的是它不支持像Access JET引擎那样的视图,但还是谢谢。 - Alexander Prokofyev
是的,如果想要更完整的SQL功能,就需要升级到Express版本,并安装更为复杂。http://download.microsoft.com/download/e/8/8/e8859616-e95d-41fe-9f81-ff88388d772b/SQLServer%202008CompareComapctExpress.pdf该文件包含了这两个产品的详细比较。 - stephbu

4
如果你使用.NET编写代码,可以考虑使用VistaDB。它是100%托管代码,包含真正的引用完整性、tsql存储过程、clr过程等功能,并且在一个单一程序集中可以进行xcopy部署。
VistaDB可以在共享托管asp.net站点下以中度信任运行,在活动目录域中以访客身份(无本地权限)运行。
在部署引擎的机器上不需要注册表或其他配置设置,并且运行时是免费的。
32/64位支持已包含在单个程序集中。带有非托管代码的混合模式引擎通常需要您提供多个非托管代码版本以支持32位和64位,或重新编译为特定CPU目标。
请参阅VistaDB的优势 SO主题以获取更多信息。

http://www.vistadb.net


3

您可以将数据存储为JSON文件。如果需要独立运行,有一些dll解决方案,例如IODBLiteDB


3

SQLite是很棒的。

还要看看Firebird嵌入式。如果未来需要多个用户访问数据库,它可能是更好的选择。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接