你会在桌面应用程序中使用Sql Server Compact吗?

22

对于桌面应用程序,使用SQL Server Compact是否有意义?

  • 它可以处理多少数据?
  • 是否可以与多个用户一起使用?有什么限制?
  • 当数据库文件损坏时会发生什么?是否可以通过编程恢复或轻松远程解决问题?

为什么不使用 SQL Express 呢? - ChrisW
2
我们正在尝试做出决定。SQL Express需要更多的空间,作为一个独立的服务运行(服务计数对我们来说是一个限制),即使不使用也会占用资源,需要进行msi安装等。 - Serhat Ozgel
3个回答

32

我肯定会(也确实这样做)。

在某些情况下,SQL Compact(SQLCE)具有独特的优势。它绝不意味着取代SQL Server。它不能扩展,不能运行成千上万个并发连接,不能设计报告服务等等。

但是它占用极小的空间。安装只需复制DLL文件。备份只需要简单地将文件复制一下。如果您使用表格直接或BCP,存储和检索速度非常快。哦,而且它是免费的。如果您只需要一个本地数据存储库,那么部署和配置SQL Server很麻烦。 SQLCE很简单。此外,它可以作为复制订阅者与完整的SQL Server在同一沙盒中运行(大多数其他小型数据库都做不到)。

编辑:忘记回答您的具体问题:

  • 它能处理多少数据? 从什么角度来看?数据库大小?吞吐量?表格大小?行大小? 我的经验是,我已经将数据库拓展到几百MB,没有问题。我认为它可以容纳4GB(截至4.0)。吞吐量与您放入或取出数据的方式直接相关。我们正在使用它来捕获每秒1k行数据,没有问题。您可以有1024列和最大行大小为8K。
  • 多个用户?好吧,它可以处理多个同时连接(自3.5起),因此是的,应该可以使用。我曾经从一个用户使用多个连接,但从多个用户使用过吗,我没有。
  • 坏的数据库?定义“损坏”。引擎具有“压缩和修复”方法。它像任何其他文件一样-如何修复损坏的可执行文件?如果您问是否在现场看到过任何损坏,那么我的回答是否定的(好吧,我们在一个有坏存储卡的CE设备上看到了一些损坏,但这不是引擎的错)。

损坏:损坏的数据库文件。例如,如果计算机突然关闭会发生什么?数据库文件是否会损坏?如果发生这种情况,能否自动恢复? - Serhat Ozgel
2
数据库就像任何其他文件一样。如果您在写入时将其打开并在断电时进行操作,那么肯定会导致损坏。对于任何数据库都可以这样说。引擎本身是ACID的,并且我们在测试中使用修复功能来处理损坏问题已经取得了不错的成功。 - ctacke
2
一旦我们发现了SqlCeDataReader和SqlCeResultSet,我简直就迷上了CE。它非常快速。 - Bob King

0

0

我曾经用它来开发一个应用程序,效果很好。唯一的问题是,由于某种原因,SQL Server 2005管理工具不支持最新版本的SQL Server CE的所有设计功能(例如,您不能编辑表)。我认为您需要使用2008版本。

速度足够快,但我承认我只用它处理了小型数据集。


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