MDF 文件访问(当附加到 SQLEXPRESS 时)线程安全吗?
我有一个本地 MDF 文件与我的 WPF 客户端应用程序一起部署。我正在使用 MDF 文件来保留一些特定于客户端的设置。可能有许多线程同时选择和更新相同的行,从而同时通过 SQL 连接提供程序访问文件。
现在,我要问的是我是否可以像对待远程 SQL SERVER 数据库一样对待线程同步(只需将所有工作留给 SQL 连接提供者),还是必须将我的数据库调用包装在里面临界区?
谢谢!
MDF 文件访问(当附加到 SQLEXPRESS 时)线程安全吗?
我有一个本地 MDF 文件与我的 WPF 客户端应用程序一起部署。我正在使用 MDF 文件来保留一些特定于客户端的设置。可能有许多线程同时选择和更新相同的行,从而同时通过 SQL 连接提供程序访问文件。
现在,我要问的是我是否可以像对待远程 SQL SERVER 数据库一样对待线程同步(只需将所有工作留给 SQL 连接提供者),还是必须将我的数据库调用包装在里面临界区?
谢谢!
MDF 文件是主数据库文件。
您不能直接写入 MDF 文件(理论上),您正在通过 SQL Server 引擎和客户端访问。
至于多个SELECT
,UPDATE
您在数据库事务隔离级别(读取已提交、未提交读取、可序列化、快照)上进行中继。
我真的很困惑,它是在数据库服务器上运行的 Microsoft SQL 数据库,只要您在更新行时在 WHERE 子句中使用乐观并发,它就可以管理表和行锁定和冲突。例如
update settings set A = 'val' where A = 'old val'
所以当然它是线程安全的。