DB2 数据库表锁的模式的描述


  本文标签:DB2 数据库表锁

  此文章主要讲述的是DB2 数据库表锁的模式,如果你对DB2 数据库表锁的模式有兴趣的话你就可以对以下的文章点击观看了,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其有更深的了解  。

  DB2在表一级加锁可以使用以下加锁方式:

表一:DB2数据库表锁的模式

  下面对几种DB2 数据库表锁的模式进一步加以阐述:

  IS、IX、SIX方式用于表一级并需要行锁配合,他们可以阻止其他应用程序对该表加上排它锁  。

  如果一个应用程序获得某表的IS锁,该应用程序可获得某一行上的S锁,用于只读操作,同时其他应用程序也可以读取该行,或是对表中的其他行进行更改  。

  如果一个应用程序获得某表的IX锁,该应用程序可获得某一行上的X锁,用于更改操作,同时其他应用程序可以读取或更改表中的其他行  。

  如果一个应用程序获得某表的SIX锁,该应用程序可以获得某一行上的X锁,用于更改操作,同时其他应用程序只能对表中其他行进行只读操作  。

  S、U、X和Z方式用于表一级,但并不需要行锁配合,是比较严格的表加锁策略  。

  如果一个应用程序得到某表的S锁  。该应用程序可以读表中的任何数据  。同时它允许其他应用程序获得该表上的只读请求锁  。如果有应用程序需要更改读该表上的数据,必须等S锁被释放  。

  如果一个应用程序得到某表的U锁,该应用程序可以读表中的任何数据,并最终可以通过获得表上的X锁来得到对表中任何数据的修改权  。其他应用程序只能读取该表中的数据  。U锁与S锁的区别主要在于更改的意图上  。U锁的设计主要是为了避免两个应用程序在拥有S锁的情况下同时申请X锁而造成死锁的  。

  如果一个应用程序得到某表上的X锁,该应用程序可以读或修改表中的任何数据  。其他应用程序不能对该表进行读或者更改操作  。

  如果一个应用程序得到某表上的Z锁,该应用程序可以读或修改表中的任何数据  。其他应用程序,包括未提交读程序都不能对该表进行读或者更改操作  。

  IN锁用于表上以允许未提交读这一概念  。以上的相关内容就是对 DB2 数据库表锁的模式的介绍,望你能有所收获  。