我看过一些类似的问题,但没有一个能够解决这个问题。
我有一个在线评估应用程序,向用户提出问题,每页一个问题,并记录他们的答案。用户可以在问题之间导航,并自动保存他们的回复。
当从一个页面(问题Q1)导航到另一个页面(问题Q2)时,数据库必须:
[RESPONSE]表是许多用户同时读写的争论点。但是,每个用户只能读取和写入他们自己的行。
这让我觉得我可以安全地使用(READUNCOMMITTED),和UPDATE with(NOLOCK)。我担心的是,我不希望出现用户前进页面的情况,然后在更新之前跳回并获取旧数据。我可以把两个操作放在一个事务中,但如果我使用NOLOCK提示会有什么不同吗?
我可以使用什么锁定策略来减轻对此表的争用?
我们目前正在使用SQL2000。
答案 0 :(得分:2)
您应该只需要使用rowlock
提示,并确保您具有适当的索引,以便可以直接搜索行而无需扫描属于不同用户的其他行。