我有一个 WCF 应用程序,目前正在使用基于 XML 的文件存储来存储用于生成报告的数据。此外,这些处理决策是根据存储在这些 XML 文件中的信息做出的。
我现在处理的文本文件数量约为 30 000 个。这是令人难以置信的繁重工作,而且应用程序有时会停滞不前。
我一直想用 RDBMS 代替 XML DAL,但项目经理不允许这样做。但他们愿意考虑无服务器解决方案,例如 SQLLite。我真的很想直接投入并开始使用它作为替代 DAL(数据访问层)。
在整个解决方案中,我只需要大约 20 个表,而且我希望每天处理的事务不超过大约 20 000 - 100 000 次,但这是极端情况,实际交易量会少于在大多数情况下。
更新
我并不期望有大量的同时连接,当我说事务时,我基本上是指 1 或 2 个客户端按顺序对数据库进行调用和执行。有时,外部客户端可能会快速调用数据库。但是大部分数据库连接将由我的 WCF 服务完成,这是一项后端计划任务,而不是为整个组织的 100 人提供服务。
另一个好处是我只需要将数据保留 90 天,因此数据库不会增长太大。
我主要担心的是:
SQLLite 的可靠性如何?如果数据库文件损坏怎么办,我会丢失所有处理数据吗?数据库备份有多容易?它会处理我的卷吗?最后,.net 提供商的工作情况如何(位于此处:http://sourceforge.net/projects/sqlite-dotnet2/)。
如果您有任何使用 SQLLite 的经验,请发布您的经验,以便我做出明智的决定是否切换。
提前致谢...
最佳答案
SQLite 与您的操作系统和硬件一样可靠。
它的事务率与 SQL Server 相似,而且通常更快,因为它都在处理中。
.NET ADO 提供程序运行良好。
要备份数据库,请停止服务并复制文件。如果存在日志文件,也将其复制。
编辑:SQLite 默认使用 UTF-8,因此使用 ADO-NET 提供程序您应该能够避免丢失重音符号(只要您遵循字符串规则中的典型 XML)。
关于c# - 在使用 SQLite 之前有什么注意事项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291405/