我使用的是存储过程,它返回5-6个表,这个过程可能会被许多用户(5-10个用户)同时使用。
过程只有"Select“语句。
所以我只想确认,无论何时调用存储过程的表,是否有任何锁应用于存储过程,否则将不会有锁。
我使用的是MS SQL Server 2012和Visual Studio 2013。
发布于 2017-02-15 14:20:49
将出现S (shared) locks:“用于不更改或更新数据的读取操作,如SELECT语句。”请注意,S锁不会阻止其他读取操作。
发布于 2017-02-15 14:49:31
当存储过程调用时,是否有任何锁应用于存储过程的表,否则将不会有锁。
select语句,将占用shared locks.How很长时间此锁将被占用,具体取决于您的隔离级别
读取行后,Readcommitted:锁将立即释放
可重复读取:在事务结束之前将一直使用共享锁,因此无法修改选定的行
可序列化:在事务期间将采用锁,不能添加新行或也不能修改旧行
发布于 2017-02-15 14:28:01
在您的情况下,没有必要考虑锁。放轻松就好。在锁区中,当多个进程同时进行时,一些进程会插入或更新数据。
https://stackoverflow.com/questions/42241946
复制相似问题