我正在使用存储过程,该过程返回5-6个表,并且此过程可能同时被许多用户(5-10个用户)同时使用。
程序只有“选择”语句。
所以我只是想确认,只要程序调用或没有锁定,是否存在任何锁存储过程表的锁定。
我正在使用MS SQL Server 2012和Visual Studio 2013。
答案 0 :(得分:1)
将S (shared) locks: “用于不更改或更新数据的读取操作,例如SELECT语句。”请注意,S锁不会阻止其他读操作。
答案 1 :(得分:1)
当程序将调用或没有锁定时,是否存在对存储过程表的任何锁定。
select语句,将采用共享锁。这个锁将持续多久取决于你的隔离级别
重新提交:锁定将在读取行
后立即释放可重复读取:共享锁将一直持续到事务结束,因此无法修改所选行
序列化:将在交易期间锁定,无法添加新行或无法修改旧行
答案 2 :(得分:0)
在您的情况下,无需考虑锁定。放轻松吧。在锁定区域,当同时进行多个处理时,某些进程会插入或更新数据。