请问各位,多用户通过update语句更新自己的信息(所有用户信息都存在一个表中)并发的时候会出问题吗?

解决方案 »

  1.   

    如果你说的是SQL Server,它的机制是:假设你不显式地启用事务,那么对于每一个语句它都会自动启用一个事务。
    默认地SQL Server是用行锁,而不是在数据库表上加锁。
    默认的事务隔离级别是 Read Committed。也就是说当你读取一个记录,别人就不能读了,必须等待。
    结论是首先是:这不会出问题。SQL Server的加锁机制相当保守,可以非常稳妥地保证不会出现问题。只不过,你会觉得它付出了比Oracle等等更多的时间代价。通常我们编写SQL Server数据库程序,要注意一个事务不要超过3秒钟(最好不超过500毫秒)。如果时间太长了,那么说明你需要分解事务,说明有滥用数据库事务的可能了。