可不可以从行级锁定
现在有个操作,只有一个表,保存着每个人的不同信息,相互之间没有关系。
这些人会在同一段时间内做一下操作,
1。删除所有属于自己的数据
2。插入自己的新数据。
3。以上操作需要使用事务。
因为每个人的数据量都不小,而且都是在同一时间操作。
我想知道能不能并发进行???
我知道只有一个表很奇怪,但是这是客户的要求,我只是想知道在技术上能不能实现。
------解决方案--------------------应该可以
------解决方案----------------------可以显示的要求SQL Server使用行所
BEGIN TRAN
DELETE FROM table1 WITH (rowlock) WHERE username= 'zhangsan '
INSERT INTO table1 VALUES ....
COMMIT TRAN
--锁升级的前提是没有使用 WITH (rowlock) 提示.
------解决方案--------------------如果要在客户端实现业务,我觉得只能按照你的做法实现比较简单。另外,我给过你一个避免事务执行期间锁升级的demo,虽然你可以不使用存储过程来那么做,但是你也许可以在客户端写一个文本格式的sql批处理脚本,然后由客户端把批处理一起发送到数据库执行,这样也是一个不错的办法。
最后,就是建议你操作的那张表上不要建聚集索引,也不要建立过多的非聚集索引,这样十分影响插入和删除的性能。
别的我也没有什么太好的建议了。