日期:2014-05-16  浏览次数:20529 次

数据写入同时读取问题
请教各位一个问题,我有个远端和近端软件,远端软件获取设备信息后同步到近端软件的mssql上,每分钟大概1000条,近端软件通过web显示数据,我做了事务处理,现在发现如果在同步的过程中,访问web查询数据库无法查找,请问如何解决同时写入读取问题,谢谢
------解决方案--------------------
  加with nolock 试试
------解决方案--------------------
因为有锁争,读取时可在表名之后加(nolock),
或设置当前session的事务隔离等级为read uncommitted.

set transaction isolation level read uncommitted

------解决方案--------------------
未提交的可能性比较大,用with nolock貌似不可取。要实时查询的话重点在事务的处理上要足够快,如果事务都未完成你就要查询,即使查到了,也不准确。
------解决方案--------------------
这个主要是你在同步的时候,不够实时,你觉得可能已经同步到远端的服务器了,但是用web查询时,没查询到数据,这个会有一定的延迟。


另外,查询时,加上with(nolock)也是有用的,比如:

select * from tb with(nolock)