本文主要介绍sqlserver共享锁(数据库互锁),下面一起看看sqlserver共享锁(数据库互锁)相关资讯。
有两种分类方法。(1)从数据库系统的角度来看,锁分为以下三种:独占锁,独占锁的资源只允许程序用于锁操作,对它的任何其他操作都不会被接受。当执行数据更新命令(即insert、update或delete命令)时,sql server将自动使用排他锁。但是当对象上有其他锁时,就不可能给它添加独占锁。在事务结束之前,不能释放独占锁。共享锁共享锁锁资源可以被其他用户读取,但是其他用户不能修改它。当选择执行命令时,sql server通常是对象上的共享锁。当读取共享锁的数据页时,共享锁被立即释放。更新锁(update lock)更新锁设置以防止死锁。sql server在准备更新数据时,首先锁定数据对象的更新锁,数据不能修改,但可以读取。当sql server决定更新数据时,它将自动更改更新锁的独占锁。但是当对象上有其他锁时,它不能被锁定在更新锁中。(2)来自程序员 s的观点,锁可以分为以下两种:乐观锁(optimistic locking)乐观锁假设在处理数据时,不需要在应用程序代码中做任何事情,可以直接锁定记录,也就是只依靠数据库来管理锁。悲观锁(悲观锁)悲观锁可以 跟不上数据库系统的自动化管理。它要求程序员直接管理对象上的数据或锁处理,并负责获取、共享和放弃正在使用的数据上的任何锁。
了解更多sqlserver共享锁(数据库互锁)相关内容请关注本站点。