SQLite与Web服务c#

时间:2011-12-15 15:31:41

标签: c# web-services sql-server-2008 sqlite database

我不确定之前是否被问过(因为我用Google搜索)。

我已经编写了一个将使用SQLite数据库托管的Web服务。

许多客户将对其执行CRUD操作。为了简单起见,我计划使用它。

现在我编写了大部分方法,此时我认为没有DBMS与SQLite(我想),因此如果两个或多个客户端应用程序写入我的应用程序,可能会出现冲突和数据不一致问题。

或SQLite是否支持管理多个连接的操作?或者我必须切换到SQL Server 2008

3 个答案:

答案 0 :(得分:1)

是的SQLite支持concurrency and locking

答案 1 :(得分:1)

简短的回答是肯定的。看看this Sqlite FAQ entry。更长的答案有点复杂......你想在一个旨在处理繁重事务负载的架构中使用Sqlite吗?可能不是。如果您确实希望朝着这个方向前进,我建议您从SQL Server Express开始。如果你需要升级到一个完整的SQL Server,它根本就不是问题......

Sqlite摘录:

(5)同一个应用程序的多个应用程序或多个实例可以同时访问单个数据库文件吗?

  

多个进程可以同时打开同一个数据库。   多个进程可以同时执行SELECT。但是只有   一个进程可以随时对数据库进行更改   然而,时间。

     

SQLite使用读取器/写入器锁来控制对数据库的访问。 [...]

答案 2 :(得分:1)

SQLite“支持管理多个连接的操作”,因为它不会爆炸或导致数据损坏。但是,它的设计并不像MS-SQL Server那样具有高负载的并发操作。因此,它归结为有多少是“许多客户”。如果您正在谈论数十个同时请求,那么SQLite就可以了。如果您正在讨论数百个并发请求,则可能需要迁移到MS-SQL Server。请注意,为了使两个请求同时发生,两个客户端必须在大约相同的几毫秒时间窗口按下“提交”按钮。因此,需要数百个同时连接的客户端才能同时获得数十个请求。