c# - 在使用 SQLite 之前有什么注意事项吗?

标签 c# sqlite

我有一个 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/

相关文章:

c# - ABCpdf转换html anchor 跳转到同一个PDF中的另一个页面

c# - 扩展静态类的扩展方法

iphone - iphone 中的数据库格式错误 + 错误磁盘 i/o 错误

sql - SQLite 不区分大小写

c# - 无法使用 C# 从 XElement 中删除空的 xmlns 属性

c# - Automapper基类映射

c# - 从委托(delegate)中获取属性名称 i => i.Name

select - sqlite3 从多个表中选择 'where' 东西

python - 使用来自多个表的随机行的 SELECT UNION 查询

android - android项目中SQLite向表中插入一条记录的错误