栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > DBA题库

DB2锁表的原因主要有哪些?

DBA题库 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DB2锁表的原因主要有哪些?

1. 锁超时

  • 锁等待

当某应用程序已经取得一个对象上的锁定(例如X锁),而第2个程序企图取得同一对象上无法并存的锁定(例如S锁定)时,则第2个程序的SQL指令就无法执行下去,发生锁定等待。

  • 锁超时

LOCKTIMEOUT参数

db cfg中,指定一个应用程序被允许的锁等待的时间,单位是秒 。缺省情况下,LOCKTIMEOUT是-1,意味着锁等待时间无限期。建议修改。

当应用程序等待时间超过LOCKTIMEOUT时间,仍未获得锁,则数据库返回-911错误,reason code为68。

2.死锁

死锁是因为两个并发的进程或者线程同时各自占有一个资源上的锁,又需要占有对方资源上的锁,但又都各不相让造成的。

相关参数:

DLCHKTIME参数

DB2检查死锁的间隔时间,单位是毫秒

每隔DLCHKTIME这么长的时间,数据库死锁检查器就会检查有无死锁存在。如有死锁,会选择回滚其中的某一个事务,让另外一个事务完成交易。回滚的事务返回返回-911错误,reason code为2。

3.锁升级

每个锁在内存中都需要一定的内存空间,为了减少锁需要的内存开销,DB2提供了锁升级的功能,将行锁升级为表锁,从而达到减少锁的数量,降低锁的内存开销的目的。

相关参数:

LOCKLIST参数

在一个数据库全局内存中用于锁存储的内存。单位为页(4K)

MAXLOCKS参数

一个应用程序允许得到的锁占用的内存所占locklist大小的百分比。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/277971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号