db2 lock
来源:互联网 发布:门罗币挖矿软件知乎 编辑:程序博客网 时间:2024/06/16 05:38
表二:DB2数据库行锁的模式
#show all the switches
db2 get monitor switches
#switch-name:
BUFFERPOOL、LOCK、SORT、STATEMENT、TABLE、TIMESTAMP 和 UOW
#set the switches ON/OFF
db2 update monitor switches using table off
#DB2 snapshot 用于锁定位(管理视图)
db2 get snapshot for locks on lgxswfc
Select substr(tabschema,1,8) as tabschema, substr(tabname,1,15) as tabname,lock_object_type,
lock_mode, lock_mode_requested, agent_id_holding_lk
From sysibmadm.lockwaits
注:db2 +c为不自动提交(commit)SQL语句,也可以通过 db2 update command options using c off关闭自动提交
(autocommit,缺省是自动提交)
db2 +c insert into lgxswfc values(2)
+++++++++++++ExAMPLE+++++++++++
#session1
db2 +c insert into lgxswfc values(2) #session2
db2 select * from lgxswfc
#此时session2 挂起#session3
Select substr(tabschema,1,8) as tabschema, substr(tabname,1,15) as tabname,lock_object_type,
lock_mode, lock_mode_requested, agent_id_holding_lk
From sysibmadm.lockwaits
db2 FORCE APPLICATION(agent_id_holding_lk);总的来说,DB2的锁和Oracle的锁主要有以下大的区别:
1.Oracle通过具有意向锁的多粒度封锁机制进行并发控制,保证数据的一致性。其DML锁(数据锁)分为两个层
次(粒度):即表级和行级。通常的DML操作在表级获得的只是意向锁(RS或RX),其真正的封锁粒度还是在行级;DB2
也是通过具有意向锁的多粒度封锁机制进行并发控制,保证数据的一致性。其DML锁(数据锁)分为两个层次(粒度)
:即表级和行级。通常的DML操作在表级获得的只是意向锁(IS,SIX或IX),其真正的封锁粒度也是在行级;另外,
在Oracle数据库中,单纯地读数据(SELECT)并不加锁,这些都提高了系统的并发程度,Oracle强调的是能够"读"到
数据,并且能够快速的进行数据读取。而DB2的锁强调的是"读一致性",进行读数据(SELECT)时会根据不同的隔离
级别(RR,RS,CS)而分别加S,IS,IS锁,只有在使用UR隔离级别时才不加锁。从而保证不同应用程序和用户读取的数
据是一致的。
2. 在支持高并发度的同时,DB2和Oracle对锁的操纵机制有所不同:Oracle利用意向锁及数据行上加锁标志位
等设计技巧,减小了Oracle维护行级锁的开销,使其在数据库并发控制方面有着一定的优势。而DB2中对每个锁会
在锁的内存(locklist)中申请分配一定字节的内存空间,具体是X锁64字节内存,S锁32字节内存(注:DB2 V8之前
是X锁72字节内存而S锁36字节内存)。
3. Oracle数据库中不存在锁升级,而DB2数据库中当数据库表中行级锁的使用超过locklist*maxlocks会发生
锁升级。
4. 在Oracle中当一个session对表进行insert,update,delete时候,另外一个session仍然可以从Orace回滚
段或者还原表空间中读取该表的前映象(before image); 而在DB2中当一个session对表进
行insert,update,delete时候,另外一个session仍然在读取该表数据时候会处于lock wait状态,除非使用UR隔
离级别可以读取第一个session的未提交的值;所以Oracle同一时刻不同的session有读不一致的现象,而DB2在同一
时刻所有的session都是"读一致"的。
+++++++++++++ExAMPLE+++++++++++
用于监控和DB2疑难分析
非侵入式工具,对DB2的性能影响小
-applications -agents -transactions -bufferpools -logs -locks
-tablespaces -dynamic -static -fcm -mempools -memsets -dbmcfg
-dbcfg -catalogcache -sysplex -tcbstats -reorg -recovery -reopt -osinfo
db2 -db lgxswfc -locks
- db2 lock
- Db2: 为什么db2pd显示Db2的lock owner是0?
- LOCK
- LOCK
- lock
- lock
- Lock
- Lock()
- lock
- LOCK
- Lock
- Lock
- Lock
- lock
- lock
- Lock
- Lock
- Lock
- 深入理解JVM(四)-Java虚拟机类加载机制
- C# out 与 ref 关键字 就是传递引用
- CentOS安装tomcat7
- JIRA6.3安装及alige插件破解
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
- db2 lock
- Java NIO系列教程(九) ServerSocketChannel
- CS VS BS
- 等概率随机函数
- 实施微服务,我们需要哪些基础框架?
- redhad安装nethogs
- copytoarray scala
- HTTPS到底是个啥玩意儿?
- c++ 拷贝构造函数