【问题标题】:SQLite with Webservices c#SQLite 与 Web 服务 c#
【发布时间】:2011-12-15 15:31:40
【问题描述】:

我不确定之前是否有人问过这个问题(我用谷歌搜索过)。

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

许多客户端会对其执行 CRUD 操作。为了简单起见,我打算使用它。

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 如果同时有两个请求怎么办?
    【解决方案2】:

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

    Sqlite 摘录:

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

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

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

    【讨论】:

    • 一个 ASP.net 或 WCF Web 服务是一个单一的进程,每个请求是同一个进程中的不同线程。
    • @BenRobinson:不一定。
    • @ben tha tis ok 但是读写是有问题的。如果我们必须在那里写一些大代码来处理并发,那么它可能会垮台............跨度>
    【解决方案3】:

    是的 SQLite 支持concurrency and locking

    【讨论】:

    • 实际上我的主机允许一个 SQL DB 并且被占用。:(所以你认为它有严重的垮台吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多