NOVOTS KMS 词汇表 Glossary    联系我们 Contact Us
查询 Search  
   
按类别浏览 Browse by Category
NOVOTS KMS .: 数据库 .: DB2 锁和并发之锁的部分概念

DB2 锁和并发之锁的部分概念

锁机制:
确保并发用户在存取同一数据库对象时的正确性。

基本的锁类型:
排他锁:exclusive locks,记为X锁,又叫写锁。

共享锁:share locks,记为S锁,又叫读锁。

锁的使用:
锁将数据资源和单个事务关联起来,当某个资源与拥有它的事务关联在一起时,控制其他事务如何与该资源进行交互。

与该资源关联的事务持有或拥有该锁。
一旦获取了锁,在事务终止之前,就一直持有该锁。事务终止时释放锁。

事务要加的锁与已存在的锁不兼容时,出现锁等待。

锁的属性:
object:锁定的数据资源。表空间、表、行、索引、数据页。
size:锁定资源的物理大小。
duration:持有锁的时间长度。
mode:允许锁的拥有者执行的访问类型,以及并发用户的访问类型。通常称为锁状态。

锁的开销:
锁定需要内存和处理时间

锁转换:
在一个事务中,后面的SQL请求的锁的模式更高时,将发生锁转换。

锁模式由高到低:
表锁:Z>X>U>IX>S>IS>IN
行锁:X>U>S

S锁请求IX锁时(或者IX锁请求S锁),锁转换的结果为SIX锁。

锁释放:
所有的锁在提交或者回滚时都会被释放。除了与指定为with hold的游标相关的表锁。

锁升级:lock escalation
每个锁在内存中都需要一定的空间,为了减少开销,DB2 提供了锁升级机制。
从行级别升级为表级别。
相关参数:
MAXLOCKS 应用程序持有的锁列表的百分比。
LOCKLIST 分配给锁列表的存储容量。

锁等待:
LOCKTIMEOUT
默认是-1,无穷等待。OLAP设置为60s比较好。OLTP设置为10s。开发环境设置为-1.
如果有大量用户,可能需要增加OLTP时间,以避免回滚。

select agent_id,substr(stmt_text,1,100) as statement,stmt_elapsed_time_ms from table(snapshot_statement('sample',-1)) as b where agent_id in (select agent_id_holding_lk from table(snapshot_lockwait('sample',-1)) as a order by lock_wait_start_time asc fetch first 20 rows only) order by stmt_elapsed_time_ms desc

寄存器:
CURRENT LOCK TIMEOUT

死锁:
DLCHKTIME
设置死锁检查间隔。死锁检测器(deadlock detector)检测死锁的间隔。发现死锁,返回SQLCODE -911和原因代码2.
默认值是10000ms


这篇文章对你多有用?

用户评语

添加评语
当前还没有评语.


.: .: .: .: .:
[ 登陆 ]
北京护航科技有限公司 2006

Novots Technologies Limited