数据库中的显式锁和隐式锁之间有什么区别?

时间:2010-09-08 19:55:25

标签: database-locking

数据库中的显式锁和隐式锁之间有什么区别?

3 个答案:

答案 0 :(得分:2)

隐式锁通常由DBMS自动放置。大多数DBMS允许开发人员或应用程序发出锁,这些锁被称为显式锁。

答案 1 :(得分:2)

隐式锁定

Objectivity / DB将隐式地为您的应用程序在需要它们时获取适当的锁。读取对象的操作将获得读锁定;修改对象的操作将获得写锁定。

明确锁定

隐式锁定获取应用程序所需资源的访问权限。通常,Objectivity / DB的自动锁定提供了一定程度的联合数据库并发性,足以满足大多数应用程序的需要。

但是,某些应用程序可能需要提前保留对所有必需资源的访问权限。这样做的原因可能是在开始操作之前确保对必要对象的必需访问权限,或者防止其他会话修改对操作至关重要的对象。

需要事先保留对所有必需对象的访问权限的应用程序可以显式锁定对象。假设应用程序需要根据特定时间点的许多对象的状态来计算值。虽然应用程序无法同时检查所有必需的对象,但它可以通过冻结对象的状态然后按顺序检查它们来实现相同的效果。显式锁定有效地冻结了对象,因为只要它们被锁定,其他会话就不能修改它们。

答案 2 :(得分:0)

  • 显式锁定: - 显式请求记录或表格锁定。
  • 隐式锁定: - 暗示锁定但未获取