首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程中的表锁

存储过程中的表锁
EN

Stack Overflow用户
提问于 2017-02-15 14:14:48
回答 3查看 926关注 0票数 0

我使用的是存储过程,它返回5-6个表,这个过程可能会被许多用户(5-10个用户)同时使用。

过程只有"Select“语句。

所以我只想确认,无论何时调用存储过程的表,是否有任何锁应用于存储过程,否则将不会有锁。

我使用的是MS SQL Server 2012和Visual Studio 2013。

EN

回答 3

Stack Overflow用户

发布于 2017-02-15 14:20:49

将出现S (shared) locks:“用于不更改或更新数据的读取操作,如SELECT语句。”请注意,S锁不会阻止其他读取操作。

票数 1
EN

Stack Overflow用户

发布于 2017-02-15 14:49:31

当存储过程调用时,是否有任何锁应用于存储过程的表,否则将不会有锁。

select语句,将占用shared locks.How很长时间此锁将被占用,具体取决于您的隔离级别

读取行后,Readcommitted:锁将立即释放

可重复读取:在事务结束之前将一直使用共享锁,因此无法修改选定的行

可序列化:在事务期间将采用锁,不能添加新行或也不能修改旧行

票数 1
EN

Stack Overflow用户

发布于 2017-02-15 14:28:01

在您的情况下,没有必要考虑锁。放轻松就好。在锁区中,当多个进程同时进行时,一些进程会插入或更新数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42241946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档