从SqlServer运行MS ASP.NET,我有一个没有唯一键的访问者表。
每当用户加载页面时,我都会以用户的IP和页面标题为键,在访问者表中执行插入或更新。
1-我读了该表,以确定该键是否已经存在记录,并根据“否”或“是”,我将执行Insert或Update语句。
由于密钥基于用户的IP地址,因此不存在多个用户同时更新同一行的风险。
现在我的问题是:如果50人试图同时更新/插入同一表中的不同行,那么SQLServer的行为会有多好(或者不好)?它能支持1000篇同意书吗?更多?
SQLServer将对所有请求进行轻柔的队列处理,然后逐个处理(对我来说很好),还是会进入某个页面锁定噩梦?此外,我说没有唯一的密钥,因为我不希望服务器在写操作期间锁定索引。
发布于 2011-03-08 13:49:15
是的,当锁定发生时,会有一定数量的请求排队,但是插入和更新是它的关键。我怀疑只有50个用户会撞到对方是非常罕见的事情。如果不知道细节,就很难预测您可以预期会发生什么样的锁定行为。插入了多少次与写入多少次。
我不认为会有页面锁定噩梦,但可能会有一些不眠之夜,当您意识到提供给服务器的IP地址并不能将不同计算机上的单个用户一对一地映射到一起。
https://stackoverflow.com/questions/5233214
复制相似问题