访问MDF文件线程安全性

时间:2013-07-31 11:13:39

标签: c# sql-server multithreading mdf

MDF文件访问(连接到SQLEXPRESS时)是否安全?

我有一个本地MDF文件与我的WPF客户端应用程序一起部署。 我正在使用MDF文件来保留一些特定于客户端的设置。可能有许多线程同时选择和更新相同的行,从而同时通过SQL连接提供程序访问该文件。

现在,我要问的是,我是否可以像处理远程SQL SERVER数据库那样处理线程同步(只需将所有工作留给SQL连接提供程序)或者我必须包装我的数据库在关键部分内调用?

谢谢!

2 个答案:

答案 0 :(得分:0)

我真的很困惑,它是在数据库服务器上运行的Microsoft SQL数据库,只要在更新行时在WHERE子句中使用乐观并发,就可以管理表和行锁定和冲突。例如

update settings set A = 'val' where A = 'old val'

所以当然它是线程安全的。

答案 1 :(得分:0)

MDF文件是主数据库文件

您无法直接(理论上)写入MDF文件,您正在通过SQL Server引擎和客户端进行访问。

对于多个SELECTUPDATE,您在数据库事务隔离级别(读取提交,读取未提交,可序列化,快照)上进行中继。

<强> Isolation Levels in the Database Engine